Warum wirkt sich die Array-Erstellung auf die Array-Transformation aus?
In bestimmten Umgebungen zeigt das Erstellen eines Arrays mit „new Array(count)“ ein unerwartetes Verhalten die Kartenmethode. Im Gegensatz zu Arrays, die mit literaler Syntax erstellt wurden (z. B. [undefiniert, undefiniert, undefiniert]), transformieren Arrays, die über new Array(3) erstellt wurden, ihre Elemente mithilfe von Map nicht korrekt.
Dieses Verhalten wird einem nicht gefüllten Array zugeschrieben. Beim Erstellen eines Arrays mit new Array(count) bleiben die Elemente des resultierenden Arrays undefiniert. Dies unterscheidet sich von Arrays, die mit der Literal-Syntax erstellt wurden und Elemente automatisch mit undefiniert initialisieren.
Um dieses Problem zu umgehen und sicherzustellen, dass die Karte ordnungsgemäß funktioniert, wird empfohlen, die Array-Elemente mit einem beliebigen Wert zu füllen, z. B. undefiniert , bevor Sie die Transformation versuchen. Zu diesem Zweck kann die Methode Array.prototype.fill() verwendet werden.
Um beispielsweise ein Array der ersten 10 Ganzzahlen mit new Array(count) und map zu erstellen:
let arr = new Array(10).fill(undefined).map((val, idx) => idx);
Dies führt zur gewünschten Ausgabe:
[0,1,2,3,4,5,6,7,8,9]
Das obige ist der detaillierte Inhalt vonWarum verhält sich „new Array(count)' bei Verwendung von „map()' anders als Array-Literale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!