Vil dette fungere til at teste, om en værdi på position "index" findes eller ej, eller er der en bedre måde:
if(arrayName[index]==""){
// do stuff
}
Alle arrays i JavaScript indeholder array.length
-elementer, startende med array[0]
og frem til array[array.length - 1]
. Et arrayelement med indeks i
siges pr. definition at være en del af arrayet, hvis i
er mellem 0
og array.length - 1
inklusive.
Det vil sige, at JavaScript-arrays er lineære, idet de starter med nul og går op til et maksimum, og arrays har ikke en mekanisme til at udelukke visse værdier eller intervaller fra arrayet. For at finde ud af, om der findes en værdi på et givet positionsindeks (hvor indeks er 0 eller et positivt heltal), bruger du bogstaveligt talt bare
if (index < array.length) {
// do stuff
}
Det er dog muligt for nogle arrayværdier at være nul, undefined
, NaN
, Infinity
, 0 eller en lang række andre værdier. Hvis du f.eks. tilføjer arrayværdier ved at øge egenskaben array.length
, vil alle nye værdier være undefined
.
Sådan afgør du, om en given værdi er noget meningsfuldt eller er blevet defineret. Det vil sige ikke undefined
, eller null
:
if (typeof array[index] !== 'undefined') {
eller
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Interessant nok kan mit sidste eksempel optimeres ned til dette på grund af JavaScript's sammenligningsregler:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}