这个问题已经在这里有一个答案:
- 通过一个额外的参数回调函数 4个回答
我试图找到一种方法,使用JS的Array.prototype.map()
的功能与具有一个附加参数更多的功能(如果可能的话,我想避免重写内置Array.prototype.map()
本文档是非常好的,但不包括“一个或者更多的附加参数”的情况下:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map
function doOpSingle(elem)
{
// do something with one array element
}
var A = ["one", "two", "three", "four"];
var x = A.map(doOpSingle); // this will execute doOpSingle() on each array element
到现在为止还挺好。 但是,如果有问题的函数有两个参数,例如像一个标志,你可能会想,或将其(考虑位掩码)
function doOpSingle2(arrelem,flag)
{
// do something with one array element
}
var A = ["one", "two", "three", "four"];
var theFlag = util.getMask(); // call external function
var y = A.map(doOpSingle2(theFlag)); // this does not work!
任何解决方案,而不应该做for
循环,当然,因为这就是为什么我们有map()
使我们的代码更加清晰W /摆脱这些!