javascript - 使用带有一个附加参数的函数的 map() 的 JS 回调

标签 javascript arrays map parameters callback

<分区>

我正在尝试找到一种方法来使用 JS 的 Array.prototype.map() 功能,该函数具有一个附加参数 more(如果可能的话,我想避免必须重写内置的 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

到目前为止,还不错。 但是,如果所讨论的函数有两个 参数怎么办,比如 e。 G。您可能想要对其进行或操作的标志(想想位掩码)

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/摆脱这些!

最佳答案

使用匿名函数:

A.map(function(a) {return doOpSingle2(a,theFlag);});

关于javascript - 使用带有一个附加参数的函数的 map() 的 JS 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872370/

相关文章:

php - 将 csv 文件读入数组

java多映射arraylist

c++ - 如何使用 std::copy 将一张 map 复制到另一张 map 中?

javascript - 无法通过计算得到0.30000000000000004

javascript - 解析 json 时遇到问题

数组中的矛盾指针

javascript - 我想在javascript中对3维数组进行排序

list - Groovy 语言 : how to get difference between two lists of pairs

javascript - jQuery UI 模态对话框 : Close and Resize Icons in Wrong Place

javascript - JS 正则表达式卡住了我的浏览器