Heim >Web-Frontend >js-Tutorial >Warum gibt „map()' undefinierte Werte für Arrays zurück, die mit „new Array(count)' erstellt wurden?

Warum gibt „map()' undefinierte Werte für Arrays zurück, die mit „new Array(count)' erstellt wurden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-07 07:00:12780Durchsuche

Why Does `map()` Return Undefined Values on Arrays Created with `new Array(count)`?

Verstehen des Verhaltens der Karte auf Arrays, die mit new Array(count) erstellt wurden

Bei der Arbeit mit JavaScript-Arrays ist ein eigenartiges Verhalten zu beachten wird durch Arrays angezeigt, die mit der Syntax new Array(count) erstellt wurden.

Wie im folgenden Codeausschnitt gezeigt, Der Aufruf von map() für ein spärliches Array (ein Array mit undefinierten Elementen), das mit new Array(count) erstellt wurde, ergibt ein Array undefinierter Werte:

var x = new Array(3);
x.map(function() { return 0; }); // [undefined, undefined, undefined]

Im Gegensatz dazu führt das Ausführen derselben Operation für ein dichtes Array ( ein Array ohne undefinierte Elemente) derselben Länge funktioniert wie erwartet:

var y = [undefined, undefined, undefined];
y.map(function() { return 0; }); // [0, 0, 0]

Diese Unterscheidung ergibt sich aus der Tatsache, dass new Array(count) ein spärliches Array erstellt, d. h Es weist seinen Elementen keine Standardwerte zu. Folglich kann map() keine Operationen an den undefinierten Elementen ausführen, was zu einem Array undefinierter Werte führt.

Um dieses Problem zu lösen, können Sie entweder eine Literal-Array-Syntax verwenden, um ein dichtes Array zu erstellen, oder das Array explizit füllen Sparse-Array mit gewünschten Standardwerten mithilfe von Methoden wie Array.prototype.fill().

Das obige ist der detaillierte Inhalt vonWarum gibt „map()' undefinierte Werte für Arrays zurück, die mit „new Array(count)' erstellt wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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