如何生成一个不等于jquery中某些值的随机数

时间:2015-12-05 05:51:22

标签: jquery random

有没有简单的方法来生成一个不等于某些值的随机值

例如,我希望生成1到10之间的值

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

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

怎么办?谢谢

1 个答案:

答案 0 :(得分:3)

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



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))