Array.prototype.map

Array.prototype.map връща нов масив, съдържащ резултатите от извикването на дадена функция на всеки елемент от извикващия масив.

callbackFn: Функция за изпълнение за всеки елемент в масива. Неговата върната стойност се добавя като единичен елемент в новия масив.

Попълване на картата

/**
 * @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.

Ресурси