我正在做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;
});
有人可以帮我解释一下吗?谢谢!
此代码将向new_s
输出包含s
x 2的值的数组>
让我们回顾一下:
Array.prototype.myMap = function(callback) { ... }
myMap
是适用于数组的函数(Array.prototype
)callback
的参数。此参数将是一个函数(即使在这里您仍然只能从参数名称中猜测;) var newArray = [];
// Add your code below this line
this.forEach(a => newArray.push(callback(a)));
// Add your code above this line
return newArray;
this
的所有值(将应用myMap
的数组)callback
引用的功能应用于每个值callback
函数的结果添加到newArray
数组中>最后:
var new_s = s.myMap(function(item) {
return item * 2;
});
myMap
功能应用于s
,而callback
功能是将返回s
,2 * s
的值的功能>