Tarkoituksena olisi saada tarkistettua löytyykö taulukosta haluttua lukua:
var numerot=new Array(); numerot[0] = 1; numerot[1] = 2; numerot[2] = 3;
Onko javascriptissä olemassa tähän tarkoitukseen valmista funktiota
vai pitääkö haku tehdä loopissa? Jos pitää, niin miten?
Tarvittava silmukka ei ole monimutkainen:
for (i in numerot) { if (numerot[i] == 2) alert("Löytyi"); }
indexOf. Kotitehtäväksi jääköön toiminnan selvittäminen eri selaimien eri versioilla.
Muuten toimii hyvin tuo for-loopissa etsiminen, mutta jos taulukossa on jokin luku jossa on etsittävä luku, ilmoittaa skripti että löytyi. Esimerkiksi tässä tapauksessa ongelma ilmenee:
var numerot=new Array(); numerot[0]=00; numerot[1]=030; for (i=0;i<=1;i++) { if (numerot[i] == 0) { alert("Löytyi!"); } }
JavaScriptissä 0
ja 00
ja 000000
ovat kaikki täsmälleen sama asia, eli luku 0. Käytä merkkijonoja, jos haluat, että ylimääräisillä nollilla on merkitystä. Eli "0"
, "00"
jne. Lisäksi 030 = 24
, et välttämättä tarkoittanut tuota.
var luvut = ["00", "030"]; var i; for (i = 0; i < luvut.length; i++) { if (luvut[i] === "0") { alert("Löytyi!") } }
Tuo koodipätkä ei väitä löytävänsä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.