【问题标题】:Unique random numbers in a each loop每个循环中的唯一随机数
【发布时间】:2014-06-11 14:33:24
【问题描述】:

我需要为我的.each() 循环生成一个唯一的随机数。 这是我生成随机数的函数:

function GenerateRandomNumber(min, max) {
    var random = Math.floor(Math.random() * (max - min + 1)) + min;
    return random;
}

这是我的.each()

jQuery.each(P, function (key, value) {
    var rand = GenerateRandomNumber(0, posProduct.length);

    switch (rand) {
        case 0:
            content[2] = P[key].getSquarePro();
            posProduct.splice(posProduct[rand], 1);
            countContent.splice(2, 1);
            alert('1');
            break;
        case 1:
            content[3] = P[key].getSquarePro();
            posProduct.splice(posProduct[rand], 1);
            countContent.splice(3, 1);
            alert('2');
            break;....
    }
    console.log(content, 'content produit')
});

我现在不知道该怎么做。我本可以做一段时间,但我无法修复最大值(P.length 不固定..) 谢谢大家!

【问题讨论】:

  • 你的switch有多少个case?
  • 这是一个 avec 8 机箱,但我有不止一个开关,有不同的机箱..
  • Fisher Yates 浮现在脑海中。

标签: javascript jquery random


【解决方案1】:

根据可能值的范围,生成唯一随机数的最简单方法是生成一个包含所有可能值的数组,打乱该数组,然后使用其中的值循环遍历数组。

【讨论】:

  • 是的,但是摇晃可能会返回相同的数字?在我看来,这不是一个真正的解决方案..
  • 只有有限数量的组合,所以您总是有可能重复。随机性包括重复。
猜你喜欢
  • 2020-07-27
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2019-12-14
  • 1970-01-01
相关资源
最近更新 更多