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
.