Die Map-Methode ist ein leistungsstarkes Werkzeug in JavaScript zum Transformieren von Elementen in einem Array. Allerdings kann es zu unerwarteten Ergebnissen kommen, wenn Sie es auf Arrays verwenden, die mit new Array(count) erstellt wurden.
Die neue Array(count)-Syntax erstellt ein Array mit einer angegebenen Anzahl von Elementen . Diese Elemente werden jedoch nicht mit Standardwerten initialisiert, was zu einem Array führt, das mit undefinierten Werten gefüllt ist.
Die Map-Methode wendet eine Funktion auf jedes Element in einem Array an und gibt zurück ein neues Array mit den geänderten Elementen. Im Fall eines Arrays, das mit new Array(count) erstellt und mit undefinierten Werten gefüllt wird, ändert die Kartenmethode die Werte nicht, da undefiniert in JavaScript nicht als wahr ausgewertet wird.
Bedenken Sie den folgenden Code:
var x = new Array(3); console.log(x.map(function() { return 0; }));
Dieser Code erstellt ein Array mit drei undefinierten Elementen. Wenn Sie die Map-Methode anwenden, werden die Elemente nicht geändert und die Ausgabe bleibt ein Array mit undefinierten Werten.
Um dieses Problem zu beheben, können Sie das Array mit einem beliebigen Wert füllen (sogar undefiniert) mit Array.prototype.fill(). Dadurch wird sichergestellt, dass die Kartenmethode über Werte verfügt, mit denen sie arbeiten kann.
var x = new Array(3).fill(undefined); console.log(x.map(function() { return 0; })); // [0, 0, 0]
Das obige ist der detaillierte Inhalt vonWarum schlägt die „map'-Methode von JavaScript bei Arrays fehl, die mit „new Array(count)' erstellt wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!