我正在做FreeCodeCamp的练习,我不明白其中的逻辑和代码。
// the global Array
var s = [23, 65, 98, 5];
Array.prototype.myMap = function(callback) {
var newArray = [];
// Add your code below this line
this.forEach(a => newArray.push(callback(a)));
// Add your code above this line
return newArray;
};
var new_s = s.myMap(function(item) {
return item * 2;
});
有谁能帮我解释一下吗?谢谢!
2条答案
按热度按时间z9smfwbn1#
此代码将向
new_s
输出一个包含s
x 2的值的数组让我们回顾一下:
myMap
是适用于数组(Array.prototype
)的函数callback
的参数。这个参数将是一个函数(即使在这里你仍然只能从参数的名称猜测;)this
(将应用myMap
的数组)的所有值callback
引用的函数应用于每个值callback
函数的结果添加到newArray
数组最后:
myMap
函数应用于s
,其中callback
函数是将返回s
的值2 * s
的函数3xiyfsfu2#
你可以试试这个代码
数组.prototype.myMap =函数(回调){
常量新数组= [];
forEach((元素,索引,数组)=〉newArray.push(回调(元素,索引,数组))
返回newArray;
};