javascript - 如何从数组创建数组

标签 javascript arrays

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .


2年前关闭。







Improve this question




我是一名 JavaScript 初学者,我正在尝试使用来自一个主数组的值创建两个不同的数组。

我的主数组如下所示:

0: Array(3) [ 2011, 127072.7, 51584 ]
1: Array(3) [ 2012, 125920.3, 59974 ]
2: Array(3) [ 2013, 129305.4, 15468 ]
3: Array(3) [ 2014, 135364, 84554 ]
4: Array(3) [ 2015, 136757, 98754 ]
5: Array(3) [ 2016, 155653.5, 155548 ]
6: Array(3) [ 2017, 164130.5, 284848 ]

我需要创建两个数组,首先看起来像:
0: Array(2) [ 2011, 127072.7]
1: Array(2) [ 2012, 125920.3]
2: Array(2) [ 2013, 129305.4]
3: Array(2) [ 2014, 135364]
4: Array(2) [ 2015, 136757]
5: Array(2) [ 2016, 155653.5]
6: Array(2) [ 2017, 164130.5]

(第一个和第二个值)

第二个喜欢:
0: Array(2) [ 2011, 51584]
1: Array(2) [ 2012, 59974]
2: Array(2) [ 2013, 15468]
3: Array(2) [ 2014, 84554]
4: Array(2) [ 2015, 98754]
5: Array(2) [ 2016, 155548]
6: Array(2) [ 2017, 284848]

(第一个和第三个值)

我尝试拼接、过滤等,但我不知道如何开始。

没有必要给我写一个确切的解决方案,而只是步骤如何去做。

最佳答案

您可以采用动态方法并在每个新数组的键值之后获取数组的所有项。

var data = [[2011, 127072.7, 51584], [2012, 125920.3, 59974], [2013, 129305.4, 15468], [2014, 135364, 84554], [2015, 136757, 98754], [2016, 155653.5, 155548], [2017, 164130.5, 284848]],
    [first, second] = data.reduce(
        (r, [k, ...a]) => {
            a.forEach((v, i) => r[i].push([k, v]));
            return r;
        },
        Array.from({ length: Array.isArray(data[0]) ? data[0].length - 1 : 0 }, () => [])
    );

console.log(first);
console.log(second);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何从数组创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60152139/

相关文章:

javascript - 使元素至少达到一定的*高度*

javascript - 是否可以在常规对象(不是 DOM 对象)上分派(dispatch)事件?

javascript - 使用 for 循环重构长 if/else if 语句 - javascript

javascript - 检查 JavaScript 字符串是否代表日期

arrays - 使用掩码获取唯一数组值

C++ 多维数组

javascript - 如何沿路线制作自定义 Google map 标记的动画?

java - 需要找到数组中数字之间的差异并保存到新数组 - 新手

python - 使用置换向量对矩阵重新排序,但保持矩阵的原始大小

java - 随机 100 个字符数组;打印所有数组值