Bude to fungovat pro testování, zda hodnota na pozici "index" existuje nebo ne, nebo existuje lepší způsob:
if(arrayName[index]==""){
// do stuff
}
Všechna pole v jazyce JavaScript obsahují prvky array.length
, počínaje array[0]
až po array[array.length - 1]
. Podle definice se o prvku pole s indexem i
říká, že je součástí pole, pokud i
leží mezi 0
a array.length - 1
včetně.
To znamená, že pole v jazyce JavaScript jsou lineární, začínají nulou a pokračují až k maximu, a pole nemají mechanismus pro vyloučení určitých hodnot nebo rozsahů z pole. Chcete-li zjistit, zda na daném indexu pozice (kde index je 0 nebo kladné celé číslo) existuje nějaká hodnota, stačí doslova použít příkaz
if (index < array.length) {
// do stuff
}
Je však možné, aby některé hodnoty pole byly nulové, nedefinované
, NaN
, Konečno
, 0 nebo celá řada různých hodnot. Pokud například přidáte hodnoty pole zvýšením vlastnosti array.length
, budou všechny nové hodnoty undefined
.
Chcete-li zjistit, zda je daná hodnota něco smysluplného, nebo zda byla definována. Tedy není undefined
nebo null
:
if (typeof array[index] !== 'undefined') {
nebo
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Zajímavé je, že díky pravidlům porovnávání v JavaScriptu lze můj poslední příklad optimalizovat na tuto hodnotu:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}