Wie wird das Array-Verhalten kopiert?

8

Ich weiß, dass ein Array in JavaScript nichts anderes als ein Objekt ist. Wenn ich ein Array so definiere:

%Vor%

und führen Sie

aus %Vor%

Ich bekomme folgendes Array: ["0", "1", "2"] . Array-Länge von array ist 3 .

Wenn ich eine Eigenschaft wie folgt hinzufüge:

%Vor%

Object.keys() gibt ["0", "1", "2", "a"] zurück, aber die Array-Länge von array ist immer noch 3 .

Aber wenn ich eine Eigenschaft wie folgt hinzufügen:

%Vor%

Die Länge von array ist jetzt 4 .

Wenn array nur ein anderes Objekt ist, wie kann ich diese Art von Verhalten erreichen, wenn ich mein Objekt von vorne anfange wie var myArray = {} ?

    
Amberlamps 23.08.2012, 12:27
quelle

2 Antworten

1

Die Eigenschaft .length enthält nur Eigenschaften mit numerischen Indizes, insbesondere solche mit ganzzahligen Werten größer oder gleich null.

Wenn Sie fragen, wie Sie die Anzahl der all Schlüssel aus einem Array oder einem Objekt ermitteln können, tun Sie Folgendes:

%Vor%

... da Object.keys() ein Array zurückgibt, das selbst eine Eigenschaft .length hat.

    
nnnnnn 23.08.2012, 13:00
quelle
1

Die Eigenschaft length des Arrays ist der Wert des höchsten numerischen Index + 1.

Also nach array["3"] = "d"; ist der höchste numerische Index 3 , daher gibt die Länge 4

zurück

Object.keys(array).length sollte Ihnen die Länge geben.

    
Clyde Lobo 23.08.2012 13:05
quelle

Tags und Links