我試圖找到一種方法來使用JS的Array.prototype.map()
功能的函數,有一個額外的參數更多(如果可能的話,我想到避免不得不重寫內置的Array.prototype.map()
)。 本文檔是非常好的,但不包括「一個或者更多的附加參數」案例:使用地圖()與一個函數,具有一個附加參數的JS回調
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 /讓擺脫這些!
+1,發佈我的回答後實現:) – SuperSaiyan
TY!這很可能是覆蓋此任務的唯一方法(除bind()之外)。感謝其他回答者。 – syntaxerror