javascript - 需要修改代码以排除数组中存在的所有值

标签 javascript arrays

在下面的代码中,函数 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;
}

我尝试使用 indexOfincludes 但没有任何运气。

谢谢!

最佳答案

以下内容对我有用:

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/

相关文章:

javascript - 为什么此查询字符串参数在移动设备上不起作用?

javascript - 单击后检索元素/文本

javascript - 比较 MySQL 条目中的 'closest' 匹配

java - 如何在java中选择合适的数组来存储XML数据

C++ 在自定义类/结构数组的构造函数中获取数组键?

JavaScript ascii http://regex

javascript - 无法将 nodemailer 错误响应从 node.js 发送到 angular.js

java - 替换字节数组中的值会产生奇怪的结果

c# - 将数组本身实现为 `.CopyTo(Array,int)` 作为目标数组(要复制到)

javascript - 使用 JS 构建包含具有特定类的所有元素的数组