如何让while循环将其结果存储在数组中,并重复10次

How do I get my while loop to store its result in an array, and repeat 10 times?

本文关键字:数组 10次 存储 while 循环 结果      更新时间:2023-09-26

我在堆栈上看到了其他问题的链接,但老实说,它们的格式都是像我这样的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/