javascript - 有没有办法在 TypeScript 中动态应用数组映射器?

标签 javascript arrays typescript dictionary

我需要帮助。我正在尝试从数组中获取数据,但每次我添加一个新的组过滤器(我正在使用自定义 Kendo 网格)时,我收到的是一个嵌套数组,如果我想获取这些数据,我需要添加一个新“items”数组上的 map 方法。问题是我没有只有一个组过滤器,但我有太多。我能做什么?

所以每次我都必须在 items 数组上添加另一个 map 方法,这不是很舒服。我的问题有解决办法吗?我可以很容易地得到组过滤器的数量。

最佳答案

您可以使用 flatMap 进行转换,例如[ [1, 2], [3, 4] ][1, 2, 0, 3, 4, 0] for arr.flatMap(v => [...v, 0])。在您的情况下,这应该有相同的结果:

const temp = this.result.data
    .flatMap(x => x.array)
    .map(y => y.selections)

这使您的代码更具可读性,并且更易于维护和添加。

如果你真的想动态添加 map 功能,你可以这样做:

const maps = [
    x => x.array,
    v => [v, v * 11],
    v => [v, -v],
    v => `num: ${v}`,
];

const data = [
    { array: [1, 2] },
    { array: [3] },
];

const temp = maps.reduce((data, map) => data.flat().map(map), data);
console.log(temp);

关于javascript - 有没有办法在 TypeScript 中动态应用数组映射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68669571/

相关文章:

TypeScript 将对象键从 PascalCase 递归转换为驼峰格式

javascript - React native,当我设计图像时文本被 chop

javascript - 如何使行悬停覆盖数据表中的选择?

c++ - 取消引用 50% 出界指针(数组的数组)

C++如何在十进制系统中添加两个数字?

angular - 确认失败 : First argument "verification Code" must be a valid string

javascript - 有没有办法在Javascript中通过lodash按多个字段对数据进行分组

javascript - 函数仅比较第一个值而不是数组中的所有值

javascript - 将 Java OffsetDateTime 解析为 JS 日期

PHP array_reduce 初始参数为数组