簡體   English   中英

jQuery隨機生成隨機數

[英]jQuery generate random number at a random time

我正在嘗試制作一個插件。 在這個插件中,我有兩個變量; rateMin和rateMax。 我想在這兩個數字之間生成一個隨機數,並將其用作setInterval時間。 然后,一旦使用該號碼,請創建另一個隨機數並使用它。

這是一個簡單的例子:

var defaults = {
    rateMin: 500,
    rateMax: 2000
}

var options = $.extend(defaults, options);
return this.each(function(defaults){

var rate = Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin; // MAKE A RANDOM NUMBER BETWEEN MAX AND MIN
setInterval(function(){
    var rate = Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin
    //DO SOMETHING
}, rate);

我希望這樣做,速率會用一個新數字覆蓋自己,並在下次調用setInterval時使用。 但它仍然只使用setInterval之前的第一個數字。

我想我不知道如何在它的功能之外使用變量。

有什么建議么?

如果您不希望每次延遲都相同,請使用setTimeout而不是setInterval 另外,如果要覆蓋外部作用域中的變量,請不要在回調中使用var rate 也就是說,我只是將這段邏輯封裝在一個函數中而忘記它。

function getNextRate() {
    return Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin;
}

setTimeout(function foo(){
    //DO SOMETHING

    setTimeout(foo, getNextRate());
}, getNextRate());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM