簡體   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