【发布时间】:2020-09-25 19:39:10
【问题描述】:
我有一个 3d 数组,第一级数组可以有一个到多个项目(数组)。每个内部数组都有一个固定长度,它的元素也是固定长度的数组。在下面的示例中,长度分别为 3 和 3。我想对各自的内部数组求和,[1+1+1, 2+2+2, 3+3+3]。输出应该是一个 3 x 3 形状的二维数组。
let arr = [
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
];
//expected output = [[3,6,9],[12,15,18],[21,24,27]]
我尝试了很多方法,但我能得到最好的:
let arr = [
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
],
];
let data = [];
arr.forEach((e) => {
data.push(e.reduce((r, a, i) => a.map((b, j) => r[j] + b)));
})
// returns [[12, 15, 18], [12, 15, 18], [12, 15, 18]]
console.log(data);
但这是[1+4+7, 2+5+8, 3+6+9]的总和。
【问题讨论】:
标签: javascript arrays multidimensional-array