Kilka sposobów poniżej dla różnych okoliczności.
W większości normalnych przypadków najprostszym sposobem uzyskania dostępu do pierwszego elementu jest
yourArray[0]
ale wymaga to sprawdzenia, czy [0] faktycznie istnieje.
Istnieją przypadki ze świata rzeczywistego, w których nie przejmujesz się oryginalną tablicą i nie chcesz sprawdzać, czy istnieje indeks, chcesz tylko uzyskać pierwszy element lub nieokreślone wstawienie.
W takim przypadku można użyć metody shift () , aby uzyskać pierwszy element, ale należy zachować ostrożność, aby ta metoda modyfikowała oryginalną tablicę (usuwa pierwszy element i zwraca go). Dlatego długość tablicy jest zmniejszona o jeden. Tej metody można użyć w przypadkach inline, w których wystarczy zdobyć pierwszy element, ale nie zależy Ci na oryginalnej tablicy.
yourArray.shift()
Ważne jest, aby wiedzieć, że dwa powyższe są opcją tylko, jeśli tablica zaczyna się od indeksu [0].
Są przypadki, w których pierwszy element został usunięty, na przykład za pomocą, delete yourArray [0] pozostawiając tablicę z „dziurami”. Teraz element w [0] jest po prostu niezdefiniowany, ale chcesz uzyskać pierwszy „istniejący” element. Widziałem wiele takich przypadków w świecie rzeczywistym.
Zakładając, że nie znamy tablicy i pierwszego klucza (lub wiemy, że są dziury), nadal możemy uzyskać pierwszy element.
Możesz użyć find (), aby uzyskać pierwszy element.
Zaletą find () jest jego wydajność, gdy wychodzi ona z pętli, gdy osiągnięta zostanie pierwsza wartość spełniająca warunek (więcej na ten temat poniżej). (Możesz dostosować warunek, aby wykluczyć null lub inne puste wartości)
var firstItem = yourArray.find(x=>x!==undefined);
Chciałbym również dołączyć tutaj funkcję filter () , aby najpierw „naprawić” tablicę w kopii, a następnie uzyskać pierwszy element, zachowując nienaruszoną oryginalną tablicę (niezmodyfikowaną).
Innym powodem włączenia filtra () jest to, że istniało ono przed find () i wielu programistów już go używało (jest to ES5 przeciwko find () będącym ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Ostrzeżenie, że filter () nie jest tak naprawdę skutecznym sposobem (filter () przechodzi przez wszystkie elementy) i tworzy kolejną tablicę. Można stosować na małych tablicach, ponieważ wpływ na wydajność byłby marginalny, bliższy na przykład do użycia forEach.
(Widzę, że niektórzy sugerują użycie pętli for ... w celu uzyskania pierwszego elementu, ale odradzam tę metodę dla ... in nie należy używać do iteracji w tablicy, w której kolejność indeksów jest ważna, ponieważ nie t gwarantuje kolejność, chociaż można argumentować, że przeglądarki w większości szanują kolejność. Nawiasem mówiąc, forEach nie rozwiązuje problemu, jak wielu sugeruje, ponieważ nie można go złamać i przejdzie przez wszystkie elementy. Lepiej byłoby użyć prostego dla zapętlić i sprawdzając klucz / wartość
Zarówno find (), jak i filter () gwarantują kolejność elementów, więc można z nich bezpiecznie korzystać jak wyżej.