Vil dette fungere for å teste om en verdi på posisjon " indeks " eksisterer eller ikke, eller er det en bedre måte:
if(arrayName[index]==""){
// do stuff
}
Alle matriser i JavaScript inneholder array.length
-elementer, fra array[0]
til array[array.length - 1]
. Per definisjon sies et matriseelement med indeks i
å være en del av matrisen hvis i
er mellom 0
og array.length - 1
inkludert.
Det vil si at JavaScript-matriser er lineære, starter med null og går til et maksimum, og matriser har ikke en mekanisme for å ekskludere visse verdier eller områder fra matrisen. For å finne ut om en verdi eksisterer på en gitt posisjonsindeks (der indeksen er 0 eller et positivt heltall), bruker du bokstavelig talt bare
if (index < array.length) {
// do stuff
}
Det er imidlertid mulig for noen matriseverdier å være null, udefinert
, NaN
, Uendelig
, 0 eller en hel rekke forskjellige verdier. Hvis du for eksempel legger til matriseverdier ved å øke egenskapen array.length
, vil alle nye verdier være undefined
.
For å avgjøre om en gitt verdi er noe meningsfylt, eller har blitt definert. Det vil si ikke udefinert
, eller null
:
if (typeof array[index] !== 'undefined') {
eller
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Interessant nok, på grunn av JavaScript&# 39s sammenligningsregler, kan mitt siste eksempel optimaliseres ned til dette:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}