Методы массивов map, filter, reduce в JavaScript

2 апреля 2024 г.
34

Метод .map()

Метод .map() используется при выполнение действий с каждым элементов массива.

Напрмер, нам нужно увеличить значение цены на 15% для каждого товара. Без использования метода код выглядит так:
const prices = [100, 150, 200, 125];
let new_prices = [];
for(let i=0; i < prices.length; i++) {
   new_prices.push(prices[i] * 1.15);
}
А вот так с использованием:
const prices = [100, 150, 200, 125];
let new_prices = prices.map(price => price * 1.15);

Метод .filter()

Метод .filter() используется когда необходимо выбрать некие элементы из массива.

Например, выборка чётных чисел без использования метода:
const numbers = [1,2,3,4,5,6,7,8];
let odds = [];
for(let i=0; i < numbers.length; i++) {
   if(numbers[i] % 2 == 1) {
      odds.push(numbers[i]);
   }
}
А теперь с его использованием:
const numbers = [1,2,3,4,5,6,7,8];
let odds = numbers.filter(num => num % 2);

Метод .reduce()

Метод .reduce() используется для свёртки значений элементов массива и получение значения (аккумулятора).

Например, нам нужно узнать общую цену товаров. Без использования метода код выглядит так:
const prices = [50, 200, 100, 75, 175];
let total_price = 0;
for(let i=0; i < prices.length; i++) {
   total_price += prices[i];
}
А с использованием метода так:
const prices = [50, 200, 100, 75, 175];
let total_price = prices.reduce((total, price) => {
   return total + price;
});
Если необходимо установить начальное значение аккумулятора в 200, то код будет выглядеть так:
const prices = [50, 200, 100, 75, 175];
let total_price = prices.reduce((total, price) => {
   return total + price;
}, 200);
Поделиться: