Dieser Aufruf
[0].map(Array);
gibt Ihnen die Das gleiche Ergebnis, als ob Sie etwas in der Art geschrieben hätten:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
Map Funktion ruft Array Funktion mit drei Parametern auf: Wert des Elements, Index des Elements und ganzes Array. Dieser Aufruf an Array
gibt Array mit 3 Elementen zurück: Wert (Nummer 0
), Index (Nummer 0
), ganzes Array ([0]
).
Und diese neue Array wird in dem ursprünglichen Array gewickelt, weil Sie Urelement (Nummer 0
) auf neues Element (Array aus 3 Elementen) maped
Hinweis: Sie können nur den ersten Parameter zu verwenden verwendet werden, wie in
array.map(function (a) { return a * a; });
oder mit zwei gerade auch Index
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
Aber erhalten müssen Sie, dass map
stil erinnern l stellt 3 Parameter zur Verfügung, die Sie in Ihrer Callback-Funktion ignorieren. Das ist auch der Grund, warum Code wie:
[0].map(String);
kehrt
["0"]
Es ist, weil String Funktion Pflege nur über den ersten Parameter und ignoriert andere übergebenen Parameter. Wenn Sie
String(11, "Some", "other", "ignored", "parameters")
Sie noch
"11"
annehmen bekommen werde ich anrufen, weil er einige Javascript WTFs um braucht immer glücklich – npst
Oh fühlen, es ist nur ein kleiner wtf-y-Variante von '[‘ 10 ',' 10 ',' 10 ']. Map (parseInt) ' – gronostaj
Noch ein seltsames' .map() 'Verhalten: https://stackoverflow.com/questions/14528397/strange-behavior-for-map-parseint In Generell müssen Sie vorsichtig sein, wenn Sie '.map()' mit Funktionen verwenden, die mehr als ein Argument benötigen. – Barmar