Czy to zadziała dla testowania, czy wartość na pozycji "index" istnieje, czy nie, czy jest lepszy sposób:
if(arrayName[index]==""){
// do stuff
}
Wszystkie tablice w JavaScript zawierają elementy array.length
, zaczynając od array[0]
aż do array[array.length - 1]
. Z definicji, o elemencie tablicy o indeksie i
mówi się, że jest częścią tablicy jeśli i
jest pomiędzy 0
a array.length - 1
włącznie.
Oznacza to, że tablice JavaScript są liniowe, zaczynając od zera i idąc do maksimum, a tablice nie mają mechanizmu wykluczania pewnych wartości lub zakresów z tablicy. Aby dowiedzieć się, czy wartość istnieje na danym indeksie pozycji (gdzie indeks jest 0 lub dodatnią liczbą całkowitą), dosłownie po prostu użyj
if (index < array.length) {
// do stuff
}
Jednak jest możliwe, że niektóre wartości tablicy mogą być null, undefined
, NaN
, Infinity
, 0, lub całą masą innych wartości. Na przykład, jeśli dodajesz wartości tablicy przez zwiększenie właściwości array.length
, wszystkie nowe wartości będą undefined
.
Aby określić, czy dana wartość jest czymś znaczącym, czy została zdefiniowana. To znaczy, nie undefined
, lub null
:
if (typeof array[index] !== 'undefined') {
lub
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Co ciekawe, z powodu reguł porównywania JavaScript's, mój ostatni przykład może być zoptymalizowany do tego:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}