Das wird eine sehr dumme Frage klingen. Wie können wir die genaue Länge des Arrays in JavaScript finden? Genauer möchte ich die gesamten Positionen im Array finden.
Ich habe ein einfaches Szenario, von dem ich denke, dass es den meisten von euch vielleicht bewusst ist.
%Vor%Wenn ich jetzt
gebe %Vor%Ich möchte die genaue Größe des Arrays erhalten, das im obigen Fall 4 sein sollte.
Damit erhalten Sie die Anzahl der tatsächlich in Ihrem Array vorhandenen Elemente:
%Vor%Bearbeiten
Wie in Kommentaren von JLRishe gezeigt, gibt Object.keys (a) .length die Anzahl der im Objekt a vorhandenen Schlüssel zurück. Wenn ich einen Schlüssel wie folgt hinzufüge:
%Vor%dann Object.keys (a) .length gibt 4
zurückaber "key" ist kein Teil des Arrays, es ist eine Eigenschaft des Array-Objekts, console.log (a) gibt Ihnen [1,2,3].
Um einen zuverlässigeren Wert für die Anzahl der Elemente in einem Array zu erhalten, müssen wir nur positive ganzzahlige Schlüsselwerte zählen:
%Vor% Object.keys gibt ein Array von String zurück. Die Zuweisung eines Wertes in einem Array mit a['1']
oder a[1]
ist äquivalent.
Array-Index-Schlüssel müssen auch kleiner als 2 ^ 32 sein.
TL; DR Der einfachste zuverlässige Ansatz, den ich mir vorstellen kann, ist folgender:
%Vor%In modernen JavaScript-Engines könnte dies wie folgt verkürzt werden:
%Vor%Volle Antwort:
Die Überprüfung gegen undefined
ist nicht genug, weil das Array tatsächlich undefined
-Werte enthalten könnte.
Zuverlässige Wege, die Anzahl der Elemente zu finden, sind ...
Verwenden Sie den Operator in
:
benutze .forEach()
(was grundsätzlich in
unter der Haube benutzt):
oder verwenden Sie .filter()
mit einem Prädikat, das immer wahr ist:
Die Größe des Arrays entspricht genau der Eigenschaft length.
Obwohl Sie nur einen Wert für die ersten drei Positionen (0,1,2) angegeben haben, haben Sie den Wert 100 auf a [100] geändert und die Größe auf 101 Positionen geändert. Daher erhalten Sie die Anzahl jeder Position von 0 (erster Index) bis 100 (letzter Index), auch wenn sie keinen Wert haben.
Mit Ihrem Code: a[100] = 100
erstellen Sie einen Block an Position 100 in Ihrem Array. (Insgesamt 101, da es bei 0 beginnt).
Wenn Sie sehen möchten, wie viele tatsächliche Antworten sich im Block befinden, müssen Sie eine Schleife verwenden und zyklisch prüfen, welche Felder ungleich undefiniert sind. Es gibt Dutzende Möglichkeiten, dies mit for
, while
, foreach
usw. zu tun.
Implementieren Sie einfach einen Zähler und zählen Sie die Abschnitte im Array, die nicht gleich null
oder undefined
sind. Dadurch erhalten Sie die Anzahl der Orte, die tatsächlich im Array verwendet werden.
Tags und Links javascript arrays