Mi ebben a js-ben a hiba?
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>
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.)
Kiírtam volna mint 1. komment.
Egyébként bocsánat, majd legközelebb oda rakom ki a kódot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!