【问题标题】:Need to modify code so that it excludes all values that exist in an array需要修改代码以排除数组中存在的所有值
【发布时间】:2017-12-29 21:06:26
【问题描述】:

在下面的代码中,函数randomBetween 生成一个随机数,函数randomBetweenAndExcluding 生成另一个与第一个不同的随机数:

$(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;
}

问题:我正在尝试扩展它,以便randomBetweenAndExcluding 排除数组中存在的任何数字。基本上为以下内容编码的东西(需要更改的部分放在星号中):

$(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,但没有任何运气。

谢谢!

【问题讨论】:

标签: javascript arrays


【解决方案1】:

以下对我有用:

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/

【讨论】:

  • 我让一切变得不必要的复杂;这非常简单。感谢您的出色回应!
猜你喜欢
  • 1970-01-01
  • 2023-01-19
  • 2016-01-22
  • 2015-08-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2019-05-27
相关资源
最近更新 更多