javascript – 如何将数组数组中相同索引处的元素加到一个数组中?

假设我有一个数组数组,如下所示:

[
  [0, 1, 3],
  [2, 4, 6],
  [5, 5, 7],
  [10, 0, 3]
]

如何生成一个新数组,该数组在javascript中对内部数组的每个位置的所有值求和?在这种情况下,结果将是:[17,19,19].无论内部数组的长度如何,我都需要能够拥有一个可行的解决方案.我认为这可以使用map和for-of的一些组合,或者可能减少,但我无法完全理解它.我搜索过但找不到任何与此相符的例子.

最佳答案
您可以将Array.prototype.reduce()Array.prototype.forEach()结合使用.

var array = [
        [0, 1, 3],
        [2, 4, 6],
        [5, 5, 7],
        [10, 0, 3]
    ],
    result = array.reduce(function (r, a) {
        a.forEach(function (b, i) {
            r[i] = (r[i] || 0) + b;
        });
        return r;
    }, []);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');

转载注明原文:javascript – 如何将数组数组中相同索引处的元素加到一个数组中? - 代码日志