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.