[英]How do I get my while loop to store its result in an array, and repeat 10 times?
我已經看到了堆棧上與其他問題相關的鏈接,但老實說,它們的格式都是我這樣的JavaScript新手無法理解的。
var currentMMR = 3330;
var desiredMMR = 4000;
var playerWinrate = 50;
var array = [];
function calculate() {
//Gets the amount of games you need to win
var gamesToWin = (desiredMMR - currentMMR) / 25;
var gamesToPlay = 0;
var progress = currentMMR;
var endgoal = desiredMMR;
var numbersInArray = 0;
while(numbersInArray < 10) {
while(progress < endgoal) {
if(getRandomNumber() >= playerWinrate) {
gamesToPlay = gamesToPlay +1;
progress = progress + 25;
} else {
gamesToPlay = gamesToPlay +1;
progress = progress - 25;
}
}
array.push(gamesToPlay);
numbersInArray++;
}
alert(numbersInArray);
}
//Creates a random number between 1-100
function getRandomNumber() {
var randomNumber = Math.floor((Math.random() * 100) + (playerWinrate/10));
return randomNumber;
}
到目前為止,我所做的是創建一個while循環,該循環從上面的變量獲取數字,使用1到100之間的隨機數進行一些計算,然后返回該數字。
while(progress < endgoal) {
if(getRandomNumber() >= playerWinrate) {
gamesToPlay = gamesToPlay +1;
progress = progress + 25;
} else {
gamesToPlay = gamesToPlay +1;
progress = progress - 25;
}
}
試圖讓它在每次運行后都存儲其編號,並且只重復執行10次
while(numbersInArray < 10) {
while(progress < endgoal) {
if(getRandomNumber() >= playerWinrate) {
gamesToPlay = gamesToPlay +1;
progress = progress + 25;
} else {
gamesToPlay = gamesToPlay +1;
progress = progress - 25;
}
}
array.push(gamesToPlay);
numbersInArray++;
}
當我提醒陣列進行測試時,我得到10個數字,但它們都是相同的。
我如何做到這一點,以便原始的while循環存儲重復並存儲不同的變量。
在while
循環內,您需要重置幾個變量。
while(numbersInArray < 10) {
gamesToPlay = 0;
progress = currentMMR;
....
否則,內部while
循環已經設置了退出條件,您將獲得與上一次迭代相同的結果。
實時示例: http : //jsfiddle.net/o8ecndas/2/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.