Come faccio a controllare in JavaScript se un valore esiste in un certo indice dell'array?

Questo funzionerà per verificare se un valore nella posizione "index" esiste o no, o c'è un modo migliore:

if(arrayName[index]==""){
     // do stuff
}
Soluzione

Tutti gli array in JavaScript contengono elementi di array.length, a partire da array[0] fino a array[array.length - 1]. Per definizione, un elemento dell'array con indice i si dice che fa parte dell'array se i è compreso tra 0 e array.length - 1 compreso.

Cioè, gli array JavaScript sono lineari, iniziano con zero e vanno verso un massimo, e gli array non hanno un meccanismo per escludere certi valori o intervalli dall'array. Per scoprire se un valore esiste ad un dato indice di posizione (dove l'indice è 0 o un intero positivo), si usa letteralmente

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

Tuttavia, è *possibile che alcuni valori dell'array siano null, undefined, NaN, Infinity, 0, o tutta una serie di valori diversi. Per esempio, se si aggiungono valori all'array aumentando la proprietà array.length, ogni nuovo valore sarà undefined.

Per determinare se un dato valore è qualcosa di significativo, o è stato definito. Cioè, non undefined, o null:

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

o

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

È interessante notare che, a causa delle regole di confronto di JavaScript, il mio ultimo esempio può essere ottimizzato a questo:

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