tgoop.com/prog_way_blog/90
Create:
Last Update:
Last Update:
Итерирование по сущностям: reduce
Уже чуть ранее мы разбирали что такое метод map для массива, а теперь пополним список методом reduce
. reduce
— это тоже метод массива. И его применение в некоторых случаях очень упрощает работу. reduce и map очень похожи. Оба метода последовательно к каждому элементу массива применяю какую-то функцию, но если map как результат работы возвращает новый массив, то метод reduce
возвращает какое-то единственное результирующее значение.
Допустим, у нас есть массив чисел:
const numbers = [1,2,3,4,5,6,7,8,9]
Если мы не знаем что такое
reduce
, то сумму чисел массива мы скорее всего найдём так:
let sum = 0
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i]
}
4 строки. А c помощью reduce сделаем в одну:
const sum = numbers.reduce((sum, current) => sum + current)
Казалось бы, да какая разница? Получим мы одно и то же, только разное количество строк потратим? Да всё равно.
На самом деле, да, всё равно. Нет ничего плохого в использовании обычного перебора циклом, но удобство использования методов
filter
, reduce
и map
в основном проявляется в их совместном использовании. Ну и, субъективно, reduce выглядит куда более читабельно.Полная сигнатура:
array.reduce(reducer, initialValue = 0)
reducer = (accumulator = initialValue, currentValie, index, array) => ...
На этом всё. Спасибо за прочтение.
#javascript #web #theory #useful
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/90