Lisää
Miten tarkistan JavaScriptissä, onko arvo olemassa tietyssä array-indeksissä?
Toimiiko tämä, kun testataan, onko paikassa "index" oleva arvo olemassa vai ei, vai onko olemassa parempi tapa:
if(arrayName[index]==""){
// do stuff
}
513
3
Kaikki JavaScriptissä käytettävät matriisit sisältävät
array.length
-alkioita, alkaenarray[0]-alkioista aina
array[array.length - 1]-alkioihin asti. Määritelmän mukaan indeksilläi
olevan elementin sanotaan olevan osa arraya, josi
on välillä0
jaarray.length - 1
(mukaan lukien).Toisin sanoen JavaScript-määritteet ovat lineaarisia, alkaen nollasta ja jatkuen maksimiin, eikä määritteillä ole mekanismia, jolla tietyt arvot tai alueet voidaan sulkea pois määritteestä. Saadaksesi selville, onko arvo olemassa tietyssä kohdassa indeksillä (jossa indeksi on 0 tai positiivinen kokonaisluku), voit kirjaimellisesti vain käyttää komentoa
On kuitenkin mahdollista, että jotkin array-arvot ovat nolla,
undefined
,NaN
,Infinity
, 0 tai monia muita arvoja. Jos esimerkiksi lisäät array-arvoja kasvattamallaarray.length
-ominaisuutta, kaikki uudet arvot ovatundefined
.Määrittääksesi, onko annettu arvo jotain merkityksellistä vai onko se määritelty. Eli ei
undefined
tainull
:tai
Mielenkiintoista on, että JavaScriptin vertailusääntöjen ansiosta viimeinen esimerkkini voidaan optimoida tähän: