Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与“合作”;“随机”;阵列_Javascript_Random - Fatal编程技术网

Javascript 与“合作”;“随机”;阵列

Javascript 与“合作”;“随机”;阵列,javascript,random,Javascript,Random,对于正在制作的游戏:使用一个HTML5元素和一些JavaScript,我试图创建一个播放列表,从对象(将是一个数组)中选择一个随机键。选择的对象基于玩家状态的“情绪”。然后,我从数组中提取歌曲的源URL,如果选择的歌曲尚未播放,则加载它,然后播放它。play函数如下所示(它是对象文字的一部分): 例如,如果我们处理的是(并且只有)“英雄”类别(即情绪),G.audio.playlist如下所示: heroic: [ [ "Song Title", "Artist",

对于正在制作的游戏:使用一个HTML5
元素和一些JavaScript,我试图创建一个播放列表,从对象(将是一个数组)中选择一个随机键。选择的对象基于玩家状态的“情绪”。然后,我从数组中提取歌曲的源URL,如果选择的歌曲尚未播放,则加载它,然后播放它。
play
函数如下所示(它是对象文字的一部分):

例如,如果我们处理的是(并且只有)“英雄”类别(即情绪),
G.audio.playlist
如下所示:

heroic: [
    [
    "Song Title", 
    "Artist",
    "Source url",
    "other info"
    ],

    [
    "Song Title",
    "Artist",
    "Source url",
    "other info"
    ],

    [
    "Song Title",
    "Artist",
    "Source url",
    "other info"
    ]
];
一切都很好,除了一件事:第二首歌很少播放,而第一首和第三首通常是在加载时播放

那么,我的问题是,有没有逻辑推理来解释为什么:

playlist[option][Math.floor(Math.random() * (playlist[option].length))][2];
是否优先于数组的第一个键(
[0]
)和第三个键(
[2]
)?

尝试将numRums设置为所需的最大值。我看不到有意义的偏见,每次运行它的结果都不一样。百分比显示是预期平均值的百分比。我发现,如果运行次数足够多,变化率约为0.01%

而且,这里有一个例子,您可以在上面运行任意多个迭代,而不会让浏览器对运行脚本的长度感到不满意。如果您愿意,您实际上可以运行1亿次迭代。这是我在三个存储桶上运行10亿次迭代得到的结果:

Number of Cycles Executed: 1,000,000,000
333,317,410    (-0.004777%)
333,330,202    (-0.000939%)
333,352,388    (+0.005716%)

你确定有偏见吗?生成随机数的代码看起来很好。。。
Number of Cycles Executed: 1,000,000,000
333,317,410    (-0.004777%)
333,330,202    (-0.000939%)
333,352,388    (+0.005716%)