Для чего используется метод map() в JavaScript?

«Для чего используется метод map() в JavaScript?» — вопрос из категории JavaScript, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод map() используется для трансформации (отображения) каждого элемента массива в новый элемент, создавая и возвращая новый массив той же длины. Это один из ключевых методов функционального программирования в JavaScript и Node.js.

Синтаксис и пример:

const newArray = array.map((currentValue, index, array) => {
  // Возвращаем новое значение для newArray[index]
}, thisArg);

Практические примеры в Node.js:

  1. Преобразование данных из БД для 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' }, ...]
  2. Извлечение конкретных полей из массива объектов:

    const requests = [{ url: '/api' }, { url: '/users' }];
    const urls = requests.map(req => req.url); // ['/api', '/users']
  3. Нормализация данных:

    const stringIds = ['123', '456', '789'];
    const numericIds = stringIds.map(id => parseInt(id, 10)); // [123, 456, 789]

Ключевые особенности:

  • Иммутабельный: Не изменяет исходный массив.
  • Предсказуемый: Возвращает массив той же длины.
  • Чистая функция: Колбэк должен быть без побочных эффектов (side-effects).

Не путать с forEach: forEach выполняет операцию для каждого элемента, но не возвращает новый массив. map предназначен именно для трансформации данных.