Обратный вызов JS с использованием map () с функцией, имеющей один дополнительный параметр [duplicate]
This question already has an answer here:
Pass an extra argument to a callback function 4 answersЯ пытаюсь найти способ использовать JSArray.prototype.map()
функциональность с функцией, у которой есть еще один дополнительный параметр (если вообще возможно, и я бы хотелavoid необходимость переписать встроенныйArray.prototype.map()
).
This documentation is very good, but does not cover the "one-or-more-additional-parameter" case:
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
Все идет нормально. Но что, если функция имеетtwo параметры, такие как е. г. флаг, который вы, возможно, захотите ИЛИ (подумайте о битовых масках)
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!
Любые решения должны делатьwithout for
петли, конечно, потому что именно поэтому мы имеемmap()
, чтобы сделать наш код чище, избавляясь от них!