Reputation: 55
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?
Upvotes: 1
Views: 114
Reputation: 693
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)
Upvotes: 0
Reputation: 3011
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))
Upvotes: 1