Zal dit werken om te testen of een waarde op positie "index" bestaat of niet, of is er een betere manier:
if(arrayName[index]==""){
// do stuff
}
Alle arrays in JavaScript bevatten array.lengte
elementen, beginnend met array[0]
tot en met array[array.lengte - 1]
. Per definitie, een array element met index i
is een deel van de array als i
tussen 0
en array.lengte - 1
ligt.
Dat wil zeggen, JavaScript arrays zijn lineair, beginnen met nul en gaan tot een maximum, en arrays hebben geen mechanisme om bepaalde waarden of reeksen uit te sluiten van de array. Om uit te vinden of een waarde bestaat op een gegeven positie-index (waarbij index 0 is of een positief geheel getal), gebruik je letterlijk gewoon
if (index < array.length) {
// do stuff
}
Echter, het is mogelijk dat sommige array waarden null, undefined
, NaN
, Infinity
, 0, of een heleboel andere waarden zijn. Bijvoorbeeld, als je array waarden toevoegt door de array.length
eigenschap te vergroten, zullen alle nieuwe waarden undefined
zijn.
Om te bepalen of een gegeven waarde iets zinvols is, of gedefinieerd is. Dat wil zeggen, niet undefined
, of null
:
if (typeof array[index] !== 'undefined') {
of
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Interessant genoeg, vanwege JavaScript's vergelijkingsregels, kan mijn laatste voorbeeld tot dit worden geoptimaliseerd:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}