Verhalten bei Füllen von leerem Array
bearbeitet von Rolf BHallo Christian,
> new Array(3); // erzeugt: [,,]
Keine Ahnung wie man sowas korrekt darstellt, aber ja, so ist es.
Arrays und Objekte sind ja letztlich zwei Sichten auf das gleiche Ding. Fasst man das Array als Objekt auf, dann erzeugt new Array(3) ein Objekt mit Array-Prototyp und einem einzigen Property: length. Dieses Property ist nicht enumerable, d.h. eine for...in Schleife beachtet es nicht.
[... new Array(3)] macht einen Spread davon, das Ergebnis ist ein Objekt mit Array-Prototyp und vier Properties. length: 3, 0: undefined, 1: undefined, 2: undefined.
Ein Blick auf die Chrome-Konsole macht es vielleicht auch nochmal klarer:
[![](/images/5965ab9a-a050-11ea-8fc1-b42e9947ef30.png)](/images/5965ab9a-a050-11ea-8fc1-b42e9947ef30.png)
_Rolf_
--
sumpsi - posui - obstruxi
Verhalten bei Füllen von leerem Array
bearbeitet von Rolf BHallo Christian,
> new Array(3); // erzeugt: [,,]
Keine Ahnung wie man sowas korrekt darstellt. Die Konsole in Chrome würde [empty x 3] schreiben.
Arrays und Objekte sind ja letztlich zwei Sichten auf das gleiche Ding. Fasst man das Array als Objekt auf, dann erzeugt new Array(3) ein Objekt mit Array-Prototyp und einem einzigen Property: length. Dieses Property ist nicht enumerable, d.h. eine for...in Schleife beachtet es nicht.
[... new Array(3)] macht einen Spread davon, das Ergebnis ist ein Objekt mit Array-Prototyp und vier Properties. length: 3, 0: undefined, 1: undefined, 2: undefined.
Ein Blick auf die Chrome-Konsole macht es vielleicht auch nochmal klarer:
[![](/images/5965ab9a-a050-11ea-8fc1-b42e9947ef30.png)](/images/5965ab9a-a050-11ea-8fc1-b42e9947ef30.png)
_Rolf_
--
sumpsi - posui - obstruxi