JavaScript'te belirli bir dizi dizininde bir değer olup olmadığını nasıl kontrol edebilirim?

Bu, "index" konumundaki bir değerin var olup olmadığını test etmek için işe yarayacak mı, yoksa daha iyi bir yol var mı?

if(arrayName[index]==""){
     // do stuff
}
Çözüm

JavaScript'teki tüm diziler, array[0] ile başlayıp array[array.length - 1]'e kadar array.length öğeleri içerir. Tanım olarak, i indisli bir dizi elemanının, i 0 ile dizi.uzunluk - 1 arasında ise dizinin bir parçası olduğu söylenir.

Yani, JavaScript dizileri doğrusaldır, sıfırdan başlar ve maksimuma gider ve diziler belirli değerleri veya aralıkları diziden çıkarmak için bir mekanizmaya sahip değildir. Belirli bir konum indeksinde (indeks 0 veya pozitif bir tamsayı olduğunda) bir değerin var olup olmadığını öğrenmek için, kelimenin tam anlamıyla sadece

if (index < array.length) {
  // do stuff
}

Bununla birlikte, bazı dizi değerlerinin null, undefined, NaN, Infinity, 0 veya bir dizi farklı değer olması * mümkündür. Örneğin, array.length özelliğini artırarak dizi değerleri eklerseniz, yeni değerler undefined olacaktır.

Verilen bir değerin anlamlı bir şey olup olmadığını veya tanımlanıp tanımlanmadığını belirlemek için. Yani, not undefined veya null:

if (typeof array[index] !== 'undefined') {

veya

if (typeof array[index] !== 'undefined' && array[index] !== null) {

İlginç bir şekilde, JavaScript'in karşılaştırma kuralları nedeniyle, son örneğim bu şekilde optimize edilebilir:

if (array[index] != null) {
  // The == and != operators consider null equal to only null or undefined
}  
Yorumlar (12)
if(!arrayName[index]){
     // do stuff
}
Yorumlar (2)
if(arrayName.length > index && arrayName[index] !== null) {
    //arrayName[index] has a value
}
Yorumlar (7)