Kezdőoldal » Számítástechnika » Programozás » JavaScriptben hogyan ellenőriz...

Csabakka kérdése:

JavaScriptben hogyan ellenőrizzem, hohgy egy új elem nincs-e már meg?

Figyelt kérdés

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;

}



2020. júl. 18. 19:59
1 2
 1/15 anonim ***** válasza:
[... new Set(szamok)]
2020. júl. 18. 20:10
Hasznos számodra ez a válasz?
 2/15 anonim ***** válasza:

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(", ")

2020. júl. 18. 20:21
Hasznos számodra ez a válasz?
 3/15 A kérdező kommentje:

- 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...

2020. júl. 18. 20:35
 4/15 anonim ***** válasza:

Ennél lehet elegánsabban is, de ha kezdő vagy akkor ezt fogod érteni:


[link]

2020. júl. 18. 20:43
Hasznos számodra ez a válasz?
 5/15 anonim ***** válasza:

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)

2020. júl. 18. 20:46
Hasznos számodra ez a válasz?
 6/15 A kérdező kommentje:
ez jó, de fro ciklussal nem lehet bejárni egy tömböt, hogy egy adott érték egyenlő-e valamelyik elemmel??????
2020. júl. 18. 20:49
 7/15 A kérdező kommentje:

5/6

igen, így kell, egy elemet kellene hozzáadni

2020. júl. 18. 20:52
 8/15 anonim ***** válasza:
0%
ott van a #4-es kommentben. Egyébként meg ha fix a [2,3,5] akkor minek szórakozol tömbökkel meg for ciklussal. Ellenőrizd le, hogy a num 2, 3 vagy 5-e és kész.
2020. júl. 18. 20:58
Hasznos számodra ez a válasz?
 9/15 anonim ***** válasza:
#8 Te se hallottál még tesztadatról, mi?
2020. júl. 18. 21:19
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:
0%
De igen hallottam. De ha a kérdezőnek csak arra van szüksége amit leírt akkor ez a legegyszerűbb megoldás. Amúgy veled ellentétben én foglalkoztam vele, próbáltam elmagyarázni, hogy mit rontott el és megoldást is mellékeltem, nem csak okoskodni jöttem ide.
2020. júl. 18. 21:21
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!