Array.prototype.map

Array.prototype.map возвращает новый массив, содержащий результаты вызова данной функции для каждого элемента вызывающего массива.

callbackFn: функция, выполняемая для каждого элемента массива. Его возвращаемое значение добавляется как один элемент в новый массив.

Pollyfill для карты

/**
 * @callback callbackFn
 * @param {object} [thisArg]
 * @return {Array}
 */
Array.prototype.myMap = function (callbackFn, thisArg) {
  const len = this.length;
  const array = new Array(len);

  for (let k = 0; k < len; k++) {
    // Ignore index if value is not defined for index (e.g. in sparse arrays).
    if (Object.hasOwn(this, k)) {
      array[k] = callbackFn.call(thisArg, this[k], k, this);
    }
  }

  return array;
};
  • Передача index и array обратному вызову карты.
  • Вызов обратного вызова карты с правильным this, если указано thisArg.
  • Разреженные массивы (например, [1, 2, , 4]). Пустые значения следует игнорировать при обходе массива.
  • thisArg ничего не делает, если обратный вызов определен как стрелочная функция, поскольку стрелочные функции не имеют собственных привязок к this.

Ресурсы