ik wil 5 verschillende waarden genereren, hiervoor heb ik een random script en een for loop:
Dat gaat goed. Alleen nu wil ik dat de waarden allemaal 50 verschillen van elkaar. Dus kwam ik op het idee om een array te maken, waarin de waarden worden opgeslagen. Elke keer voor hij een waarde opslaat, check hij of de waarde inderdaad 50 verschilt van alle andere opgeslagen waarden. Zo nee, dan moet hij een nieuw getal genereren, zo ja, dan gaat hij verder:
Alleen als ik deze code uit wil voeren, loopt mijn browser vast. Hij blijft dus ergens in een loop hangen denk ik, maar waar? Ik vermoed bij de laatste if statement. Of wat doe ik fout?
JavaScript:
1
2
3
4
5
6
7
8
| function rand(nr) { return (Math.floor(Math.random() * nr + 1)); } for (i=0;i<5;i++) { thenewx = rand(500); document.write(thenewx+'<br>'); } |
Dat gaat goed. Alleen nu wil ik dat de waarden allemaal 50 verschillen van elkaar. Dus kwam ik op het idee om een array te maken, waarin de waarden worden opgeslagen. Elke keer voor hij een waarde opslaat, check hij of de waarde inderdaad 50 verschilt van alle andere opgeslagen waarden. Zo nee, dan moet hij een nieuw getal genereren, zo ja, dan gaat hij verder:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function rand(nr) { return (Math.floor(Math.random() * nr + 1)); } arrayx = new Array(); for (i=0;i<5;i++) { ok = 'no'; while (ok == 'no') { thenewx = rand(500); for (j=0;j<=arrayx.length; j++) { thisx = arrayx[j]; if (thenewx > (thisx + 50) || thenewx < (thisx - 50)) { ok = 'yes'; j = arrayx.length; arrayx[i] = thenewx; document.write(thenewx+'<br>'); } } } } |
Alleen als ik deze code uit wil voeren, loopt mijn browser vast. Hij blijft dus ergens in een loop hangen denk ik, maar waar? Ik vermoed bij de laatste if statement. Of wat doe ik fout?