运行此命令时,其打印不确定。在进行ret.push(func(arr[i]))
时是否具有上下文权限?
function print(arr,func){
var ret =[]
for(let i =0 ;i<arr.length;i++){
ret.push(func(arr[i]))
}
return ret;
}
var numbers = [1,2,3,4,5];
console.log(print(numbers,(x)=>{x+1}));
它打印[undefined,undefined,undefined,undefined,undefined]。
答案 0 :(得分:3)
您可以使用return
语句并获取新值。
function print(arr, func) {
var ret = [];
for (let i = 0; i < arr.length; i++) {
ret.push(func(arr[i]));
}
return ret;
}
var numbers = [1, 2, 3, 4, 5];
console.log(print(numbers, (x) => { return x + 1; }));
// ^^^^^^
// or take a simplified lambda with implicit return (kudos paul!)
console.log(print(numbers, x => x + 1));