Cuộc gọi này
[0].map(Array);
cung cấp cho bạn kết quả giống như khi bạn viết một cái gì đó như thế này:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
Bản đồ chức năng đang kêu gọi Mảng chức năng với ba thông số: giá trị của nguyên tố, chỉ số của phần tử và toàn bộ mảng. Lệnh gọi này Arraytrả về cho bạn mảng có 3 phần tử: value (số 0), index (số 0), whole array ( [0]).
Và mảng mới này được bao bọc trong Mảng ban đầu, vì bạn đã ánh xạ phần tử ban đầu (số 0) thành phần tử mới (mảng 3 phần tử)
Lưu ý: Bạn có thể quen chỉ sử dụng tham số đầu tiên như trong
array.map(function (a) { return a * a; });
hoặc chỉ sử dụng hai để có được chỉ mục
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Nhưng bạn cần nhớ rằng mapvẫn cung cấp 3 tham số bạn chỉ cần bỏ qua chúng trong hàm gọi lại của mình. Đó cũng là lý do tại sao mã như:
[0].map(String);
trả lại
["0"]
Đó là bởi vì hàm String chỉ quan tâm đến tham số đầu tiên và bỏ qua các tham số khác được truyền vào. Nếu bạn gọi
String(11, "Some", "other", "ignored", "parameters")
bạn vẫn sẽ nhận được
"11"