Sum arrays in array (JavaScript)
本问题已经有最佳答案,请猛点这里访问。
我有一个由多个数组组成的数组:
1 | var array = [[1], [2, 1, 1], [3, 4]]; |
现在我想得到一个数组,其中的元素是变量"array"中每个数组的总和。在这个例子中,var sum=[1,4,7]。我该怎么做?
您需要循环遍历每个单独的数组,然后对其元素求和并返回一个新的数组。
对于返回新数组,可以使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var array = [ [1], [2, 1, 1], [3, 4] ]; let m = array.map(function(item) { return item.reduce(function(acc, curr) { acc += curr; return acc; }, 0) }) console.log(m) |
您可以使用
1 2 3 4 5 6 | var array = [[1], [2, 1, 1], [3, 4]]; var newArray = array .map(arr => arr.reduce((sum, item) => sum += item, 0)); console.log(newArray); |
我会这样写:
1 2 3 4 5 6 7 | var array = [[1], [2, 1, 1], [3, 4]]; var m = array.reduce( (acc, curr) => acc.concat(curr.reduce((memo, number) => memo + number, 0)), [] ); console.log(m); |
。
您需要先循环第一个数组以查找内部数组,然后逐个循环所有内部数组以获取和,并在内部数组的循环完成后继续将其推送到新数组。
1 2 3 4 5 6 7 8 9 10 | var array = [[1], [2, 1, 1], [3, 4]]; var sumArray = []; array.forEach(function(e){ var sum = 0; e.forEach(function(e1){ sum += e1; }); sumArray.push(sum); }); console.log(sumArray); |
号