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
}
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
}
if(arrayName.length > index && arrayName[index] !== null) {
//arrayName[index] has a value
}