Как я могу использовать .reduce(), чтобы добавить все значения во вложенный массив?

#javascript #arrays

#javascript #массивы

Вопрос:

Я довольно новичок в использовании .reduce(), и мне интересно, как лучше всего найти сумму всех чисел внутри myArr .

 const myArr = [ [ 10, 0 ], [ 10, 0 ], [ 2, 4 ], [ 2, 4 ] ]
 

Комментарии:

1. каков ваш ожидаемый результат?

2. ожидаемый результат должен быть 32

Ответ №1:

Вы могли flat бы разделить массив на десять, а затем суммировать

 const myArr = [
  [10, 0],
  [10, 0],
  [2, 4],
  [2, 4]
]

console.log(
  myArr.flat().reduce((acc, curr) => acc   curr, 0)
) 

Комментарии:

1. Также можно использовать [].concat.apply([], myArr) вместо Array#flat для поддержки es5

Ответ №2:

Вероятно, лучшим решением является то, что предлагает Tibebes. Я уже предлагал, но вот еще два:

 myArr.reduce((acc, curr) => acc   curr[0]   curr[1], 0)
 

и

 myArr.reduce((acc, curr) => acc   curr.reduce((innerAcc, innerCurr) => innerAcc   innerCurr, 0), 0)