Wie prüfe ich in JavaScript, ob ein Wert an einem bestimmten Array-Index existiert?

Funktioniert dies für die Prüfung, ob ein Wert an Position "index" vorhanden ist oder nicht, oder gibt es einen besseren Weg:

if(arrayName[index]==""){
     // do stuff
}
Lösung

Alle Arrays in JavaScript enthalten array.length Elemente, beginnend mit array[0] bis zu array[array.length - 1]. Per Definition ist ein Array-Element mit dem Index i Teil des Arrays, wenn i zwischen 0 und array.length - 1 liegt.

Das heißt, JavaScript-Arrays sind linear und beginnen bei Null und gehen bis zu einem Maximum, und Arrays haben keinen Mechanismus, um bestimmte Werte oder Bereiche aus dem Array auszuschließen. Um herauszufinden, ob ein Wert an einem bestimmten Positionsindex existiert (wobei index 0 oder eine positive ganze Zahl ist), verwenden Sie buchstäblich nur

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

Es ist jedoch möglich, dass einige Array-Werte Null, Undefiniert, NaN, Unendlich, 0 oder eine ganze Reihe anderer Werte sind. Wenn Sie zum Beispiel Array-Werte hinzufügen, indem Sie die Eigenschaft array.length erhöhen, werden alle neuen Werte undefiniert sein.

Um festzustellen, ob ein gegebener Wert etwas Sinnvolles ist, oder definiert wurde. Das heißt, nicht undefiniert oder null:

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

oder

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

Interessanterweise kann mein letztes Beispiel aufgrund der JavaScript-Vergleichsregeln auf diese Weise optimiert werden:

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