PROG_WAY_BLOG Telegram 90
Итерирование по сущностям: 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



tgoop.com/prog_way_blog/90
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

“[The defendant] could not shift his criminal liability,” Hui said. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday.
from us


Telegram progway — программирование, IT
FROM American