Создание собственной реализации функции map

Обойдите существующие индексы массива и запишите результаты callback на те же позиции в новом массиве. Не изменяйте исходный массив и сохраняйте пропуски.

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

Что ответить на собеседовании

Обойдите существующие индексы массива и запишите результаты callback на те же позиции в новом массиве. Не изменяйте исходный массив и сохраняйте пропуски.

Подробный разбор

Ответ с пояснениями

Условие

Разработать пользовательскую версию метода map, реализовав её логику без использования готовых библиотечных решений.

Ответ

Обойдите существующие индексы массива и запишите результаты callback на те же позиции в новом массиве. Не изменяйте исходный массив и сохраняйте пропуски.

function map(array, callback, thisArg) {
  if (typeof callback !== 'function') throw new TypeError('Expected function');
  const length = array.length, result = new Array(length);
  for (let index = 0; index < length; index++) {
    if (index in array) result[index] = callback.call(thisArg, array[index], index, array);
  }
  return result;
}

Callback получает значение, индекс и исходный массив; длина фиксируется до начала обхода. Для [1,2] и x => x * 2 результат [2,4]. Это базовый алгоритм для обычного массива, без всех специальных правил array-like и Symbol.species.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее