JavaScriptben hogyan ellenőrizzem, hohgy egy új elem nincs-e már meg?
Mi itt a hiba? Egy bekért elemről szeretném, ha csak akkor adná a tömbhöz, ha nincs olyan még...
function myFunction()
{
var szamok = new Array;
szamok = [2, 3, 5];
for (var i = 0; i < szamok.length; i++)
{
var num = prompt("mi a szam?");
if (num != szamok[i])
{szamok.push(num);}
else
{window.alert("ilyen van már");}
}
document.getElementById("demo").innerHTML = szamok;
}
Amúgy az a hiba, hogy vagy fogalmam sincs mit akarsz vagy teljesen rosszul kezdtél hozzá
A szám bekérésének a for ciklus előtt kellene lennie, különben háromszor is bekéri egy új számot.
"num != szamok[i]"
Ennek semmi értelme. A bekért számot összehasonlítod a tömb i-edik elemével, de mi van ha a bekért szám a tömb egy másik elemével egyenlő? Mondom, ki kell raknod a szám bekérését a for ciklus elé. A duplikációkat egyszerűbben is kiszűrheted (lásd az #1 hozzászólásom) vagy pl a tömb filter metódusa, de mondjuk ez mellékes, a for ciklus is rendben van.
Ezen kívül az is egy katyvasz, hogy ha a num != szamok[i] akkor rögtön hozzáfűzöd a tömbhöz, vagyis a num többször is hozzáadódik a szamok-hoz.
"document.getElementById("demo").innerHTML = szamok;"
Ennek megint semmi értelme. Az innerHTML egy string te pedig egy tömböt akarsz belerakni. Talán illene a tömböt átalakítani string-é pl:
document.getElementById("demo").innerHTML = szamok.join(", ")
- ok elé kell tenni,
- a for ciklus elvileg arra lenne, hogy sorban minden elemmel összehasonlítsa
- a kiírással nincs gond
- az első hozzászólás így nem sokat mond nekem...
Illetve még az is egy hiba (gondolom), hogy a myFunction-ön belül van meghatározva a számok tömb. Vagyis akárhányszor hívod meg a számok mindig felveszi a [2,3,5] értéket vagyis ezeken kívül csak egy elemet tud hozzáadni a függvény.
Helyesen úgy lenne, hogy a szamok tömböt paraméterként kapja meg:
function myFunction (szamok)
5/6
igen, így kell, egy elemet kellene hozzáadni
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!