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

问题描述 投票:2回答:1

是否有任何简单的方法来生成一个不等于某些值的随机值

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

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

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

怎么办?谢谢

jquery random
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.