如何在javascript中返回一个随机数,该数字始终大于前一个数字

时间:2015-09-30 13:12:27

标签: javascript

如何在javascript中返回一个随机数,每次代码重新运行时,该随机数总是大于先前的随机数。例如,当代码第一次运行时,它返回1000,然后当它第二次运行时,它返回1300。

条件:该数字必须始终为整数。

5 个答案:

答案 0 :(得分:7)

function randomFunction() {
  var x = 0
  return function() {
    x = x + Math.round( Math.random() * 100 )
    return x
  }
}

var nextRandom = randomFunction()

nextRandom() // => 51
nextRandom() // => 127
nextRandom() // => 203

答案 1 :(得分:2)

这个怎么样?

CountersAggregateInterval = TimeSpan.FromMinutes(5);
JobExpirationCheckInterval = TimeSpan.FromHours(1);

修改

@dimakura杰出答案的启发,这是我的基于闭包的函数,它接受起始值和下一个最大随机步骤:

        return '' +
        '<td class="' + classes.join(' ') + '" data-date="' + date.format() + '">' + '<input type="checkbox" name="cal[]" id="checkbox-2-' + date.format() + '" class="regular-checkbox big-checkbox" value="' + date.format() +'" /><label for="checkbox-2-' + date.format() + '">' + date.date() + '</label>'
            +
        '</td>';
},

答案 2 :(得分:1)

如何简单地添加以前的号码?

答案 3 :(得分:0)

试试这个:

for (i = 0; i < n; i++) {
    newR = Math.floor((Math.random() * 1000) + oldR); 
    //  use newR here.
    oldR = newR;
}

答案 4 :(得分:0)

Math.random()Math.floor()联系起来,将范围的最小值设置为最后一个结果。

&#13;
&#13;
var min = 0;
var max = 10000;
$("#randomise").click(function() {
  var result = Math.floor(Math.random() * (max - min)) + min;
  $("#result").text(result);
  min = result;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>
<button id="randomise">Randomise</button>
&#13;
&#13;
&#13;