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
.