map
имеет обратный вызов и имеет три аргумента. Неважно, что вы называете эти аргументы. Имя аргументов не имеет значения, вы можете назвать их foo a, b, cat, world, dude, et c.
Когда он перебирает ваш массив, он берет все, что есть в индексе массив и передает его в функцию, которую вы предоставляете. Таким образом, если первый индекс вашего массива содержит число, он пропускает это число.
Вторым параметром является индекс. Третий параметр - это массив, который он зацикливает.
function doubleIt(x, index) {
console.log(x, index)
return x * 2
}
function tripeleIt(foo, index) {
console.log(foo, index)
return foo * 3
}
var myArray = [1,2,3,4]
console.log(myArray.map(doubleIt))
console.log(myArray.map(tripeleIt))
Под капотом карта выглядит так (я назвал ее xmap, чтобы она могла работать)
Array.prototype.xmap = function (callback) {
var theArray = this;
var theResult = [];
for (var index = 0; index < theArray.length; index++) {
var indexValue = theArray[index];
theResult[index] = callback(indexValue, index, theArray)
// ^^^^^^^^^^ Where the first argument comes from
}
return theResult;
}
var x = [1,2,3,4].xmap(x => x * 2)
console.log(x)