Вопрос проверяет понимание основных методов работы с массивами в JavaScript, которые используются для трансформации, фильтрации и агрегации данных.
В JavaScript методы map, filter и reduce являются фундаментальными инструментами функционального программирования для работы с массивами. Они позволяют обрабатывать данные декларативно, без использования циклов for или while, что делает код более читаемым и выразительным.
Метод map применяет переданную функцию к каждому элементу массива и возвращает новый массив той же длины с результатами вызова этой функции. Он используется, когда нужно трансформировать данные, например, извлечь определённые свойства объектов или применить математические операции.
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]Метод filter создаёт новый массив, включающий только те элементы, для которых переданная функция-предикат возвращает true. Он идеально подходит для выборки данных по условию.
const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(num => num % 2 === 0);
console.log(evens); // [2, 4]Метод 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
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию