我正在尝试使用array.map() ()来模拟forEach。
var map = function () {
var empMap = [];
numbers.forEach(function (number) {
empMap.push(number);
console.log('empMap', empMap);
});
return(empMap);
}
var numbers = [1, 2, 3];
//implement this line
var doubles = map(numbers, function (number) {
return number * 2;
});
console.log(doubles); // [2, 4, 6]因此,我有一个带有值的numbers数组,我有自己的map function来迭代这个数组,然后将值推到一个空数组empMap中。
稍后,我将调用这个映射函数,并将每个值与2相乘并打印出来。
我应该得到双倍的输出为2,4,6,而不是1,2,3。不知道我哪里出错了。
发布于 2019-01-30 13:52:29
您需要将数组和回调作为参数传递,然后实际使用回调。
var map = function (array, callback) {
var empMap = [];
array.forEach(function (number) {
empMap.push(callback(number))
});
return(empMap);
}
var numbers = [1, 2, 3];
var doubles = map(numbers, function (number) {
return number * 2;
});
console.log(doubles); // [2, 4, 6]
https://stackoverflow.com/questions/54442116
复制相似问题