在不同的输入文本上生成随机数并确保显示的随机数是唯一的

我正在尝试使用JQuery创建一个JavaScript代码段,该代码段具有不断变化的随机数,并将显示在不同的文本框中。

但是,我无法弄清楚如何使数字显示每个文本框的不同值。 我怎么能做到这一点?

这是我到目前为止的JavaScript代码:

var pcount = $(".pcount"); for(var i= 0; i < pcount.length; i++){ var n = []; var element = pcount.eq(i); setInterval(function() { n[i] = 10 + Math.floor(Math.random(Number($( ".pcount" ).val())) * 10); $('.pcount').val(n[i]); }, 1000);} 

以下是文本框的HTML代码:

    

要确保随机数是真正独一无二的,您必须跟踪之前发生的所有随机数,如果发生冲突,请生成一个新的:

 var makeUniqueRandom = (function() { var randoms = {}; return function(low, hi) { var rand; while (true) { rand = Math.floor((Math.random() * (hi - low)) + low); if (!randoms[rand]) { randoms[rand] = true; return rand; } } } })(); 

用法:

 var rand = makeUniqueRandom(1, 10); 

注意:您必须绝对确保不会耗尽可用的随机数,因为如果这样做,它将变成无限循环。 因此,如果您要求1-10中的随机数(9个可能的值),则不要将其调用超过9次。


要将随机值放入标记,您可以执行以下操作:

    $(".pcount").each(function() { this.value = makeUniqueRandom(1, 10); });