简体   繁体   中英

how to sum arrays of array?

I know we can sum the array elements using reduce() but what if we have an array of arrays. For eg:

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

it will return 60

but if we have

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

how can we get the final result as result=[60,90,210] using reduce?

fisrt you can map and inside map use 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)

You can use Array.prototype.map() to loop through each of the subarrays in the outer array. The map() method creates a new array with the results of calling a provided function on every element in the calling array.

Once you get a subarray, follow the previous approach to find the sum using reduce().

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

If you want to use .reduce only, I suggest this code:

 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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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