Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: map, filter, reduce, array methods, functional programming

В чем разница между map, filter и reduce?

Вопрос проверяет понимание основных методов работы с массивами в JavaScript, которые используются для трансформации, фильтрации и агрегации данных.

Короткий ответ

Методы map, filter и reduce служат для разных целей при работе с массивами. Map создаёт новый массив, преобразуя каждый элемент исходного. Filter возвращает новый массив, содержащий только те элементы, которые удовлетворяют условию. Reduce сводит весь массив к одному значению, аккумулируя результат. Все они не изменяют исходный массив и являются чистыми функциями, что делает код предсказуемым.

Длинный ответ

В JavaScript методы map, filter и reduce являются фундаментальными инструментами функционального программирования для работы с массивами. Они позволяют обрабатывать данные декларативно, без использования циклов for или while, что делает код более читаемым и выразительным.

Метод map

Метод map применяет переданную функцию к каждому элементу массива и возвращает новый массив той же длины с результатами вызова этой функции. Он используется, когда нужно трансформировать данные, например, извлечь определённые свойства объектов или применить математические операции.

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]

Метод filter

Метод filter создаёт новый массив, включающий только те элементы, для которых переданная функция-предикат возвращает true. Он идеально подходит для выборки данных по условию.

const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(num => num % 2 === 0);
console.log(evens); // [2, 4]

Метод reduce

Метод reduce сводит массив к единственному значению, последовательно применяя функцию-аккумулятор. Он принимает два аргумента: функцию-редьюсер и начальное значение аккумулятора. Функция получает текущий аккумулятор и элемент массива, возвращая новое значение аккумулятора.

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 10

Эти методы часто комбинируются в цепочки для решения сложных задач обработки данных. Например, можно отфильтровать массив, затем преобразовать элементы и наконец вычислить общее значение.

const transactions = [
  { amount: 100, currency: 'USD' },
  { amount: 200, currency: 'EUR' },
  { amount: 50, currency: 'USD' }
];
const totalUSD = transactions
  .filter(t => t.currency === 'USD')
  .map(t => t.amount)
  .reduce((sum, amount) => sum + amount, 0);
console.log(totalUSD); // 150

Используйте map для преобразования данных, filter для фильтрации и reduce для агрегации или свёртки в одно значение. Эти методы делают код чище и проще для тестирования, поскольку они иммутабельны и следуют принципам функционального программирования.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#map

#filter

#reduce

#array methods

#functional programming

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию