Farklı durumlar için aşağıdaki yollardan bazıları.
Çoğu normal durumda, ilk öğeye erişmenin en basit yolu
yourArray[0]
ancak bu, [0] öğesinin gerçekten olup olmadığını kontrol etmenizi gerektirir.
Orijinal diziyi umursamadığınız ve dizinin var olup olmadığını kontrol etmek istemediğiniz gerçek dünya vakaları vardır, sadece ilk öğeyi veya tanımsız satır içi almak istersiniz.
Bu durumda, ilk öğeyi almak için shift () yöntemini kullanabilirsiniz, ancak bu yöntemin orijinal diziyi değiştirdiğine dikkat edin (ilk öğeyi kaldırır ve döndürür). Bu nedenle bir dizinin uzunluğu bir azalır. Bu yöntem, yalnızca ilk öğeyi almanız gereken satır içi durumlarda kullanılabilir, ancak orijinal diziyi önemsemezsiniz.
yourArray.shift()
Bilmeniz gereken önemli şey, yukarıdaki ikisinin yalnızca diziniz bir [0] diziniyle başlıyorsa bir seçenek olmasıdır.
İlk öğenin silindiği durumlar vardır, örneğin, dizinizi "delikler" ile terk ederek dizinizi [0] silin. Şimdi [0] 'daki eleman basitçe tanımsız, ancak ilk "mevcut" elemanı almak istiyorsunuz. Bunun birçok gerçek dünya örneğini gördüm.
Yani, dizi ve ilk anahtar hakkında hiçbir bilgimiz olmadığını varsayarsak (veya delikler olduğunu biliyoruz), yine de ilk elemanı alabiliriz.
Sen kullanabilirsiniz find () birinci elemanını alır.
Find () yönteminin avantajı, koşulu karşılayan ilk değere ulaşıldığında döngüden çıktığı için verimliliğidir (daha fazlası aşağıdadır). (Durumu boş veya diğer boş değerleri de hariç tutacak şekilde özelleştirebilirsiniz)
var firstItem = yourArray.find(x=>x!==undefined);
Ben de filtre () burada ilk kopyasını dizi "düzeltmek" ve sonra orijinal dizi bozulmadan (değiştirilmemiş) tutarken ilk öğe almak için bir seçenek olarak eklemek istiyorum .
Burada filter () 'i eklemenin başka bir nedeni, find ()' dan önce var olması ve birçok programcının onu zaten kullanmasıdır (find () 'ın ES6 olmasına karşı ES5).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Filter () işlevinin gerçekten etkili bir yol olmadığına (filter () tüm öğeler arasında çalışır) ve başka bir dizi oluşturduğuna dikkat edin. Performans etkisi marjinal, örneğin forEach kullanımına daha yakın olacağı için küçük dizilerde kullanmak iyidir.
(Bazılarının ilk öğeyi elde etmek için ... in döngüsünde kullanılmasını önerdiğini görüyorum, ancak ... için bu yönteme karşı tavsiye ederim. o değil çünkü' tarayıcılar çoğunlukla sipariş saygı iddia iddia rağmen t garanti. bu arada, forEach sorunu çözemez birçok önermek çünkü kırmak olamaz ve tüm öğeleri üzerinden çalışacaktır. için basit bir kullanarak kapalı daha iyi olurdu döngü ve anahtar / değer kontrol ederek
Hem find () hem de filter () öğelerin sırasını garanti eder, bu nedenle yukarıdaki gibi kullanmak güvenlidir.