繁体   English   中英

如何对数组的 arrays 求和?

[英]how to sum arrays of array?

我知道我们可以使用reduce()对数组元素求和,但是如果我们有一个 arrays 数组怎么办。 例如:

var result=[10,20,30];
result.reduce((a, b) => a + b)

它将返回60

但是如果我们有

 result=[ [10,20,30], [20,30,40], [60,70,80] ] console.log(result);

我们如何使用reduce得到最终结果为result=[60,90,210]

首先你可以在map和 map 内部使用reduce

 result=[ [10,20,30], [20,30,40], [60,70,80] ] const final = result.map(item => item.reduce((a, b)=> a + b, 0)) console.log(final)

您可以使用Array.prototype.map()循环遍历外部数组中的每个子数组。 map()方法使用在调用数组中的每个元素上调用提供的 function 的结果创建一个新数组。

一旦你得到一个子数组,按照前面的方法使用 reduce() 求和。

result = result.map(subArray => subArray.reduce((a, b) => a + b))

如果您只想使用.reduce ,我建议使用以下代码:

 result=[
  [10,20,30],
  [20,30,40],
  [60,70,80]
]
const sum = result.reduce((a, b) => {
  return [...a.concat(b.reduce((a, b) => a + b, 0))]
}, [])
console.log(sum)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM