Цей дзвінок
[0].map(Array);
дає вам такий самий результат, як якщо б ви писали щось подібне:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
Функція Map викликає функцію Array з трьома параметрами: значенням елемента, індексом елемента та цілим масивом. Цей виклик Arrayповертає вам масив із 3 елементами: значення (число 0), індекс (число 0), цілий масив ( [0]).
І цей новий масив обертається оригінальним масивом, тому що ви перетворили оригінальний елемент (число 0) на новий елемент (масив із 3 елементів)
Примітка: Ви можете звикнути використовувати лише перший параметр, як у
array.map(function (a) { return a * a; });
або використовуючи лише два, щоб отримати також індекс
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Але потрібно пам’ятати, що mapвсе-таки передбачено 3 параметри, які ви просто ігноруєте у своїй функції зворотного дзвінка. Це також причина, чому такий код:
[0].map(String);
повертає
["0"]
Це тому, що функція String дбає лише про перший параметр і ігнорує інші передані параметри. Якщо зателефонувати
String(11, "Some", "other", "ignored", "parameters")
ви все одно отримаєте
"11"