【问题标题】:how can generate a random number that isn't equal to some values in jquery如何生成不等于 jquery 中某些值的随机数
【发布时间】:2016-03-10 04:17:51
【问题描述】:

有什么简单的方法可以生成不等于某些值的随机值

例如我想生成一个介于 1 到 10 之间的值

Math.floor(Math.random() * 10) + 1;

我希望它不等于 3,4,7

怎么办?谢谢

【问题讨论】:

    标签: jquery random


    【解决方案1】:

    尝试定义不应返回的数字数组,使用Array.prototype.indexOf() 仅过滤不包含在包含34,7 的数组中的 1 到 10 之间的数字

    var n = [3, 4, 7];
    
    function rand(not) {
      var r = Math.floor(Math.random() * 10) + 1;
      return not.indexOf(r) === -1 ? r : rand(not)
    }
    
    console.log(rand(n))

    或者,通过定义仅包含不是34,7 的数字的数组来进行逆过程

    var n = [1, 2, 5, 6, 8, 9, 10];
    
    function rand(arr) {
      var r = Math.floor(Math.random() * arr.length);
      return arr[r]
    }
    
    console.log(rand(n))

    【讨论】:

    • 太好了,非常感谢@guest271314
    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    相关资源
    最近更新 更多