Javascript - map and callback - returning values are not affected
本问题已经有最佳答案,请猛点这里访问。
我想在数组上使用map方法并回调到另一个函数。似乎一切正常,但最终返回的值不会受到影响。我不知道是什么问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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" |
你忘了归还价值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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) |
回调函数返回
要获得预期的输出,您应该返回修改后的结果,例如
1 | var final=arr.map(function(a){return multi(a,add);}); |
您需要从回调返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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); |
1 | .as-console-wrapper { max-height: 100% !important; top: 0; } |