[[1, 2, 3],[4, 5, 6],[7, 8, 9]].map(arr => arr.reduce((acc, c) => acc + c))
// [ 6, 15, 24 ]
Объяснение
Каждый элемент внешнего массива трансформируется в число:
[
[1, 2, 3] --> 6
[4, 5, 6] --> 15
[7, 8, 9] --> 24
]
— это операция
map(): каждый-в-каждый.
Теперь суть каждого такого преобразования. Из массива получить единственное значение — это
reduce()
Сложить все элементы массива и вернуть сумму. Аккумулятором будет эта самая сумма. Очередное значение складывать с накопленным аккумулятором и возвращать сумму.
reduce( (accumulator, current) => accumulator + current )
с обычной функциейreduce(
function(accumulator, current) {
return accumulator + current;
}
)
Начальное значение аккумулятора даже не обязательно указывать вторым аргументом, т.к. в таком случае сразу берётся значение первого элемента. В деле сложения это вполне устраивает.