function map(arr, fn){
for(var i = 0; i <arr.length; i++){
fn(arr[i]);
//some code here
}
}
map([1,2,3,4], function(val){
return console.log(val * 2);
});
我在尝试将结果转换为数组形式时遇到麻烦。例如,[2,4,6,8]。我觉得我知道该怎么做,但我正在空白。
答案 0 :(得分:2)
回调(fn
)应该改变手头的数组值,而map
应该返回数组。请参阅摘要。此外:只需使用我会说的本地Array.map
方法(为此see mdn)
function map(arr, fn){
for(var i = 0; i <arr.length; i++){
arr[i] = fn(arr[i]);
}
return arr;
}
console.log(
map([1,2,3,4], function(val){ return val*2; })
);
// but hey, who needs it
console.log([1,2,3,4].map(v => v*2));
答案 1 :(得分:0)
您的回调函数需要为数组中的每个项目返回一个新值,并且您需要为这些值创建一个新数组
function map(arr, fn){
return arr.map(fn);
}
var res = map([1,2,3,4], function(val){
return val * 2;
});
console.log(res)