.map
- это просто метод, который принимает обратный вызов, вызывает обратный вызов для каждого элемента массива и присваивает значение новому массиву. В этом нет ничего особенного. Вы даже можете легко реализовать это самостоятельно:
Array.prototype.myMap = function(callback) {
const newArr = [];
for (let i = 0; i < this.length; i++) {
newArr.push(callback(this[i], i, this));
}
return newArr;
}
var numbers = [16, 25, 36];
var results = numbers.myMap(Math.sqrt);
console.log(results); // [4, 5, 6]
Чтобы быть полностью совместимым с c, вам также потребуется , чтобы проверить, среди прочего, что this
является возразить, что callback
может быть вызвано, и .call
обратный вызов со вторым параметром, переданный в myMap
, если таковой имеется, но это детали, не важные для начального понимания функций высшего порядка.