Heim > Web-Frontend > js-Tutorial > Warum schlägt die „map'-Methode von JavaScript bei Arrays fehl, die mit „new Array(count)' erstellt wurden?

Warum schlägt die „map'-Methode von JavaScript bei Arrays fehl, die mit „new Array(count)' erstellt wurden?

Linda Hamilton
Freigeben: 2024-12-11 11:23:14
Original
448 Leute haben es durchsucht

Why Does JavaScript's `map` Method Fail on Arrays Created with `new Array(count)`?

Array-Erstellung und das Verhalten der Map-Methode verstehen

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.

Array-Erstellung

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.

Verhalten der Map-Methode

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.

Realweltszenario

Bedenken Sie den folgenden Code:

var x = new Array(3);
console.log(x.map(function() { return 0; }));
Nach dem Login kopieren

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.

Lösung

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]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage