Tôi đang cố gắng tìm cách sử dụng chức năng Array.prototype.map()
của JS với hàm có thêm một tham số nữa (nếu có thể, và tôi muốn đến tránh phải viết lại được xây dựng trong Array.prototype.map()
). Tài liệu này là rất tốt, nhưng không bao gồm cơ chế "một hay-hơn-thêm tham số" trường hợp:Gọi lại JS sử dụng map() với hàm có thêm một tham số
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
Cho đến nay, như vậy tốt. Nhưng nếu chức năng được đề cập có thông số hai thông số, như e. g. một lá cờ bạn có thể muốn HOẶC đến nó (suy nghĩ của mặt nạ bit)
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!
Bất kỳ giải pháp nên làm mà khôngfor
vòng, tất nhiên, bởi vì đó là lý do tại sao chúng tôi có map()
, để làm cho mã sạch của chúng tôi w/nhận loại bỏ những thứ này!
+1, được nhận ra sau khi đăng câu trả lời của tôi :) – SuperSaiyan
TY! Điều này rất có thể sẽ là cách duy nhất để thực hiện nhiệm vụ này (ngoài bind()). Cũng nhờ những người trả lời khác. – syntaxerror