Skip to content

JavaScript: 4 способи використання reduce

Опубліковано: at 15:00

4-use-cases-reduce

Reduce - це один з найбільш потужних методів масивів JavaScript. Він може бути використаний для вирішення різних задач. В цій статті ми розглянемо 4 способи використання reduce.

1. Підрахунок загальної суми

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((acc, curr) => acc + curr, 0);

console.log(sum); // 15

2. Пошук максимального значення

const numbers = [1, 2, 3, 4, 5];

const max = numbers.reduce((acc, curr) => Math.max(acc, curr), -Infinity);

console.log(max); // 5

3. Групування елементів за ключем

const people = [
  { name: "Alice", age: 21 },
  { name: "Max", age: 20 },
  { name: "Jane", age: 20 },
];

const groupedPeople = people.reduce((acc, curr) => {
  const key = curr.age;
  if (!acc[key]) {
    acc[key] = [];
  }
  acc[key].push(curr);
  return acc;
}, {});

console.log(groupedPeople);

4. Підрахунок кількості елементів за ключем

const people = [
  { name: "Alice", age: 21 },
  { name: "Max", age: 20 },
  { name: "Jane", age: 20 },
];

const countByAge = people.reduce((acc, curr) => {
  const key = curr.age;
  if (!acc[key]) {
    acc[key] = 0;
  }
  acc[key]++;
  return acc;
}, {});

console.log(countByAge);

В яких випадках не варто використовувати reduce?

Reduce - це потужний метод, але не завжди варто його використовувати. Варто використовувати тільки тоді, коли інші методи масивів не підходять для вирішення задачі. Наприклад, якщо вам потрібно просто підрахувати загальну суму елементів масиву, краще використовувати метод reduce, але якщо вам потрібно просто перебрати всі елементи масиву, краще використовувати метод forEach. Також варто уникати вкладених викликів методу reduce, оскільки це може зробити код менш зрозумілим.

Відео: JavaScript: Розуміємо як працює reduce

Заключні слова

Reduce - це один з найбільш потужних методів масивів JavaScript. Він може бути використаний для вирішення різних задач. В цій статті ми розглянули 4 способи використання reduce. Сподіваюсь, ця стаття була корисною для вас. Якщо у вас є які-небудь питання або зауваження, будь ласка, залиште коментар нижче.