Learner
Learner

Reputation: 55

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?

Upvotes: 1

Views: 114

Answers (3)

sinnerwithguts
sinnerwithguts

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

Nithin Kumar Biliya
Nithin Kumar Biliya

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

Jaisa Ram
Jaisa Ram

Reputation: 1767

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)

Upvotes: 5

Related Questions