0

我正在使用这样的东西: alert("Random number is: "+ Math.floor(Math.random() * 75) + 0);. 创建一个 0 到 75 之间的随机数。知道如何创建一个 0 到 75 之间的随机数,它不是这个逗号解析字符串中的数字之一: $not_these_numbers = "17,26,52,75";.

4

2 回答 2

4

生成数字数组(0-75,不包括这些数字)然后生成随机索引:

var exclude = "17,26,52,75".split(',');
var numbers = [];

for (var i = 0; i <= 75; i++) {
    if (exclude.indexOf(i+'') == -1)
        numbers.push(i);
}

// will never be one of the numbers in exclude array
var random_number = numbers[Math.floor(Math.random() * numbers.length)];
于 2012-09-18T01:56:23.560 回答
2

你可以使用一个对象:

function getRandLimited() {
  var invalid = { 17:17, 26:26, 52:52, 75:75};
  var rand;
  do {
    rand = Math.floor(Math.random() * 76);
  } while (rand in invalid);
  return rand;
}
于 2012-09-18T01:47:12.223 回答