Javascript 以给定速率在两个事件之间切换

Javascript 以给定速率在两个事件之间切换,javascript,Javascript,我想在2.js文件之间切换,如下所示: <script type="text/javascript"> <!-- var jsfiles = ['/js/green.js', '/js/blue.js']; var randomLink = Math.floor(Math.random() * jsfiles.length); document.getElementById('scriptid').src = jsfiles[randomLink]; //--> &l

我想在2.js文件之间切换,如下所示:

<script type="text/javascript">
<!--
var jsfiles = ['/js/green.js', '/js/blue.js'];

var randomLink = Math.floor(Math.random() * jsfiles.length);

document.getElementById('scriptid').src = jsfiles[randomLink];
//-->
</script>
<script src="" id="scriptid"></script>

如何使green.js占98%的时间,而blue.js占2%的时间?

这怎么样


如果((~~(Math.random()*100))那么,如果实际的百分比并不重要的话,你可以尝试做一些看起来像98%的事情

var jsfiles = ['/js/green.js', '/js/blue.js'];

var randumNum = Math.floor(Math.random() * 100);

if(randomNum > 90)
    document.getElementById('scriptid').src = '/js/blue.js';
 else
    document.getElementById('scriptid').src = '/js/green.js';
这不是一个很好的解决方案,因为它实际上不会是98%,随机行为的方式是不同的,它不会是准确的,但如果你只有2个文件,而实际百分比并不重要,这可以工作


我已经设置了90,因为我认为如果你继续使用98,这将是99%,但这不是一个事实,我不确定随机在JS中到底是如何工作的,你的电话。

像这样简单的事情怎么样?这将始终是98%/2%

var jsfiles = ['/js/green.js', '/js/blue.js'],
    secondFileCount = 0,
    count = 0,
    rndFiles = [],
    num;

while (count < 100) {
    num = Math.floor(Math.random() * 2);

    if (num !== 1 || secondFileCount++ <= 2)
        count = rndFiles.push(jsfiles[num]);
}

console.log(rndFiles);
var jsfiles=['/js/green.js','/js/blue.js'],
secondFileCount=0,
计数=0,
rndFiles=[],
号码;
同时(计数<100){
num=Math.floor(Math.random()*2);

如果(num!==1 | | secondFileCount++您必须将持久计数器保留在某个位置才能准确实现这一点。如果您确实有2个文件,您可以尝试生成一个介于0-100之间的随机数,98以下的所有文件都将选择green.js,但它不是真正的98%…可能会变得更像99%…我只想在1或其他之间切换在这种情况下,我认为使用Math.random和另一个我不知道的东西会起作用。@eric.itzhak怎么会这样?你能给我举个例子吗?谢谢。三是一个边界边缘的场景,因为我可以得到100。但这是主要的想法。很好,我明白了,现在如何将它应用到这件事上?
谢谢!@JoseCardama你想让它无限期地继续下去吗?在不改变我的大部分代码的情况下,你可以将这个过程包装在一个函数中,然后弹出每个
rndFiles
元素,当数组为空时,重新运行这个过程以生成另外100个文件。我只想从加载文档的100倍开始,98倍src=“/js/green.js”2次src=“/js/green.js”@JoseCardama逐个弹出文件,
var nextFile=rndFiles.Pop();
@JoseCardama您只需更改
secondFileCount即可++