Kezdőoldal » Számítástechnika » Weblapkészítés » Mi ebben a js-ben a hiba?

Mi ebben a js-ben a hiba?

Figyelt kérdés

Unalmamban elkészítettem de nem jövök rá hol benne a hiba :S

<!DOCTYPE html>

<html>

<body>


<p>Írj be legalább 2 lehetőséget a lenti rublikába és a gép eldönti mi a helyes válasz!</p>



<p id="lista"></p>

<input type="text" id="adas">

<button onclick="add()">Hozzáad</button>

<button onclick="general()">Generál</button>


<script>

var hossz = 0;

var cuccok = [];

document.getElementById("lista").innerHTML = cuccok;



function add() {

cuccok.push(document.getElementById("adas").value);

document.getElementById("lista").innerHTML = cuccok;

hossz++;

}


function general() {

if(hossz < 1)

{

alert('Legalább 2 tag');

}

else

{

var ennyi = Math.floor(Math.random() * hossz-1);


alert(cuccok[ennyi]);

}

}



</script>


</body>

</html>



2018. júl. 2. 21:06
 1/10 anonim ***** válasza:
25%
Valahol biztos ott van pedig.
2018. júl. 2. 21:13
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Nem teljesen világos, hogy mit is szeretnél.
2018. júl. 2. 21:23
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
Egy tömbbe elemeket tetszőlegesen hozzáadni, mazd azokból egyet véletlenszerűen kiíratni.
2018. júl. 2. 21:37
 4/10 anonim ***** válasza:
0%
Én mondjuk nem is értem az ilyen kérdéseket miért nem törlik azonnal.
2018. júl. 2. 22:10
Hasznos számodra ez a válasz?
 5/10 2*Sü ***** válasza:
78%

var ennyi = Math.floor(Math.random() * hossz-1);


helyett:


var ennyi = Math.floor(Math.random() * hossz);


Mondjuk van 10 elem a tömbödben. A hossz 10. A Math.random 0 és 0,999999… között generál számot. Ezt 10-el megszorozva 0 és 9,999999… között kapsz számot, ezt lefele kerekítve 0 és 9 közötti számot fogsz kapni – mindegyiket azonos eséllyel –, ami pont jó.


Sejtem mi volt a gondolatod, de akkor is a (hossz-1) -et zárójelbe kellett volna tenned. Viszont úgy 0 és 8 között kaptál volna véletlen számot.


Úgy, ahogy leírtad, úgy meg -1 és 8 között generált számot.


(Nyilván a „kód” nem szép, nem kiforrott, érthető egy kicsit a többi válaszoló negatív reakciója.)

2018. júl. 3. 00:01
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

var ennyi = Math.floor(Math.random() * hossz-1);

helyett

var ennyi = Math.floor(Math.random() * hossz);


de ha szépen akarod megcsinálni, akkor inkább így:

[link]

működés közben:

[link]

2018. júl. 3. 00:54
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:
Köszönöm a válaszokat, leginkább az utolsó 2 válaszolónak.
2018. júl. 3. 02:10
 8/10 anonim ***** válasza:
Eskü le kéne tiltani a relációjeleket meg a kapcsos zárójeleket a kérdésfeltevésnél. Gyorsan rászoknának a kódmegosztókra! :)
2018. júl. 3. 07:21
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:

Kiírtam volna mint 1. komment.

Egyébként bocsánat, majd legközelebb oda rakom ki a kódot.

2018. júl. 3. 17:33
 10/10 A kérdező kommentje:
Mármint a pastebinre :)
2018. júl. 3. 17:34

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!