在下面的代码中,函数 randomBetween
生成一个随机数,函数 randomBetweenAndExclusion
生成另一个与第一个不同的随机数:
$(document).ready(function () {
function randomBetween (min, max) {
var ceiling = max + 1;
return Math.floor(Math.random() * (ceiling - min)) + min;
}
function randomBetweenAndExcluding (min, max, excluding) {
var random;
do {
random = randomBetween(min, max);
} while(random === excluding);
return random;
}
问题:我正在尝试扩展它,以便randomBetweenAndExclusion
排除数组中存在的任何数字。本质上为以下内容编码的东西(需要更改的部分放在星号中):
$(document).ready(function () {
function randomBetween (min, max) {
var ceiling = max + 1;
return Math.floor(Math.random() * (ceiling - min)) + min;
}
function randomBetweenAndExcluding (min, max, ***[ARRAY WITH X # of ELEMENTS]******) {
var random;
do {
random = randomBetween(min, max);
} while(random === ***ANY ELEMENT WITHIN THE ARRAY****);
return random;
}
我尝试使用 indexOf
和 includes
但没有任何运气。
谢谢!
最佳答案
以下内容对我有用:
function randomBetween (min, max) {
var ceiling = max + 1;
return Math.floor(Math.random() * (ceiling - min)) + min;
}
function randomBetweenAndExcluding (min, max, array) {
var random;
do {
random = randomBetween(min, max);
} while(array.includes(random));
return random;
}
array = [1,2,5];
alert(randomBetweenAndExcluding(1,5,array))
您可以在这个 JSFiddle 上查看:https://jsfiddle.net/scz1n8a9/
关于javascript - 需要修改代码以排除数组中存在的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48028450/