Javascript - 映射和回调 - 返回值不受影响
Javascript - map and callback - returning values are not affected
我想在数组上使用 map 方法并回调到另一个函数。一切似乎都工作正常,但最后返回值不受影响。我不知道似乎是什么问题。
var arr=[4,5,3,2];
function multi (x,callback){
return callback(x*2);
}
function add(x){
// alert(x); when I'm alerting "x" here, it's value is multiplied as it should be
return x+3;
}
var final=arr.map(function(a){multi(a,add); return a;});
final; // returns same values as Array "arr"
您需要return回调中的值
function multi(x, callback) {
return callback(x * 2);
}
function add(x) {
return x + 3;
}
var arr = [4, 5, 3, 2],
final = arr.map(function (a) { return multi(a, add); });
// ^^^^^^
console.log(final);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您的回调函数 returns a
,与传入的元素相同。因此结果与输入相同。
要获得预期的输出,您应该 return 修改后的结果,例如
var final=arr.map(function(a){return multi(a,add);});
您忘记return
返回值
var arr = [4, 5, 3, 2];
function multi(x, callback) {
return callback(x * 2);
}
function add(x) {
return x + 3;
}
var final = arr.map(function(a) {
return multi(a, add);
});
console.log(final)
我想在数组上使用 map 方法并回调到另一个函数。一切似乎都工作正常,但最后返回值不受影响。我不知道似乎是什么问题。
var arr=[4,5,3,2];
function multi (x,callback){
return callback(x*2);
}
function add(x){
// alert(x); when I'm alerting "x" here, it's value is multiplied as it should be
return x+3;
}
var final=arr.map(function(a){multi(a,add); return a;});
final; // returns same values as Array "arr"
您需要return回调中的值
function multi(x, callback) {
return callback(x * 2);
}
function add(x) {
return x + 3;
}
var arr = [4, 5, 3, 2],
final = arr.map(function (a) { return multi(a, add); });
// ^^^^^^
console.log(final);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您的回调函数 returns a
,与传入的元素相同。因此结果与输入相同。
要获得预期的输出,您应该 return 修改后的结果,例如
var final=arr.map(function(a){return multi(a,add);});
您忘记return
返回值
var arr = [4, 5, 3, 2];
function multi(x, callback) {
return callback(x * 2);
}
function add(x) {
return x + 3;
}
var final = arr.map(function(a) {
return multi(a, add);
});
console.log(final)