Ответ
Метод map() используется для трансформации (отображения) каждого элемента массива в новый элемент, создавая и возвращая новый массив той же длины. Это один из ключевых методов функционального программирования в JavaScript и Node.js.
Синтаксис и пример:
const newArray = array.map((currentValue, index, array) => {
// Возвращаем новое значение для newArray[index]
}, thisArg);
Практические примеры в Node.js:
-
Преобразование данных из БД для API-ответа:
const dbUsers = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]; const apiResponse = dbUsers.map(user => ({ userId: user.id, fullName: user.name.toUpperCase() })); // apiResponse: [{ userId: 1, fullName: 'ALICE' }, ...] -
Извлечение конкретных полей из массива объектов:
const requests = [{ url: '/api' }, { url: '/users' }]; const urls = requests.map(req => req.url); // ['/api', '/users'] -
Нормализация данных:
const stringIds = ['123', '456', '789']; const numericIds = stringIds.map(id => parseInt(id, 10)); // [123, 456, 789]
Ключевые особенности:
- Иммутабельный: Не изменяет исходный массив.
- Предсказуемый: Возвращает массив той же длины.
- Чистая функция: Колбэк должен быть без побочных эффектов (side-effects).
Не путать с forEach: forEach выполняет операцию для каждого элемента, но не возвращает новый массив. map предназначен именно для трансформации данных.