Einige der folgenden Möglichkeiten für verschiedene Umstände.
In den meisten normalen Fällen ist der einfachste Weg, auf das erste Element zuzugreifen, der von
yourArray[0]
Dazu müssen Sie jedoch überprüfen, ob [0] tatsächlich vorhanden ist.
Es gibt Fälle in der realen Welt, in denen Sie sich nicht für das ursprüngliche Array interessieren und nicht überprüfen möchten, ob ein Index vorhanden ist. Sie möchten nur das erste Element oder eine undefinierte Inline erhalten.
In diesem Fall können Sie die Methode shift () verwenden, um das erste Element abzurufen. Beachten Sie jedoch, dass diese Methode das ursprüngliche Array ändert (entfernt das erste Element und gibt es zurück). Daher wird die Länge eines Arrays um eins reduziert. Diese Methode kann in Inline-Fällen verwendet werden, in denen Sie nur das erste Element abrufen müssen, sich aber nicht um das ursprüngliche Array kümmern.
yourArray.shift()
Wichtig zu wissen ist, dass die beiden oben genannten nur dann eine Option sind, wenn Ihr Array mit einem [0] -Index beginnt.
Es gibt Fälle, in denen das erste Element gelöscht wurde, z. B. mit delete yourArray [0], wobei Ihr Array mit "Löchern" belassen wird. Jetzt ist das Element bei [0] einfach undefiniert, aber Sie möchten das erste "vorhandene" Element erhalten. Ich habe viele reale Fälle davon gesehen.
Vorausgesetzt, wir kennen das Array und den ersten Schlüssel nicht (oder wir wissen, dass es Löcher gibt), können wir trotzdem das erste Element erhalten.
Sie können find () verwenden , um das erste Element abzurufen.
Der Vorteil von find () ist seine Effizienz, wenn es die Schleife verlässt, wenn der erste Wert erreicht ist, der die Bedingung erfüllt (mehr dazu weiter unten). (Sie können die Bedingung so anpassen, dass auch null oder andere leere Werte ausgeschlossen werden.)
var firstItem = yourArray.find(x=>x!==undefined);
Ich möchte hier auch filter () als Option einfügen, um zuerst das Array in der Kopie zu "reparieren" und dann das erste Element zu erhalten, während das ursprüngliche Array intakt bleibt (unverändert).
Ein weiterer Grund, filter () hier aufzunehmen, ist, dass es vor find () existierte und viele Programmierer es bereits verwendet haben (es ist ES5 gegen find () als ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Warnung, dass filter () nicht wirklich effizient ist (filter () durchläuft alle Elemente) und ein anderes Array erstellt. Die Verwendung auf kleinen Arrays ist in Ordnung, da die Auswirkungen auf die Leistung gering wären, beispielsweise näher an der Verwendung von forEach.
(Ich sehe, dass einige Leute vorschlagen, for ... in loop zu verwenden, um das erste Element zu erhalten, aber ich würde gegen diese Methode empfehlen, da ... in nicht verwendet werden sollte, um über ein Array zu iterieren, bei dem die Indexreihenfolge wichtig ist, weil dies nicht der Fall ist. ' t garantieren die Reihenfolge, obwohl Sie argumentieren können, dass Browser die Reihenfolge meistens respektieren. Übrigens löst forEach das Problem nicht so, wie viele vorschlagen, weil Sie es nicht brechen können und es alle Elemente durchläuft. Sie sollten besser ein einfaches für verwenden Schleife und durch Überprüfen von Schlüssel / Wert
Sowohl find () als auch filter () garantieren die Reihenfolge der Elemente und können daher wie oben beschrieben sicher verwendet werden.