当前位置: 首页 > 知识库问答 >
问题:

如何从数组中生成随机数(不包括某些给定的数字)[重复]

桓喜
2023-03-14

我正在做一个游戏,玩家在1-36之间选择6个数字
我要做的是创建一个新数组,该数组不包括6个选定的数字,并且新数组的长度为30。

这就是我所做的
生成的第一个数组:

var selectedBalls = [2, 8, 25, 13, 8, 5]; //take this as the selected balls for example
var totalBalls = [];

function getBallsReady(){
  for (var i = 1; i <= 36; i++) {
    totalBalls.push(i);
  }
}

这是我试图获得新数组的代码,但还不完美,因为从所选的6个数字中至少有1或2个数字仍然是新数组的一部分。

function generateNewBalls() {
  let clonedTotalBalls = [...totalBalls];

  selectedBalls.map((ball) => {
    clonedTotalBalls.splice(ball, 1);
  })
}

我做错了什么?

共有2个答案

裴欣然
2023-03-14

plice删除特定索引处的元素,而不是特定值。为了达到您想要的结果,您应该使用:

function generateNewBalls() {
  let clonedTotalBalls = [...totalBalls];

  selectedBalls.map((ball) => {
    let indexToRemove = clonedTotalBalls.indexOf(ball)
    clonedTotalBalls.splice(indexToRemove, 1);
  })
}

(我还建议您将map更改为forEach,如果您不想返回值,或者考虑使用filterindexOf,这是最佳做法。但这与您的问题并不相关)

葛磊
2023-03-14

可以这样做

clonedTotalBalls = totalBalls.filter((element)=>!selectedBalls.includes(element))

filter函数接受一个谓词,该谓词在每个元素上运行一次,并为每个元素返回一个布尔值。在这种情况下,谓词是元素是否包含在selectedBalls数组中。因此,selectedBalls数组中包含的所有元素将返回false,而所有其他元素将返回true<代码>过滤器也不会修改原始数组,而是创建一个新数组。

 类似资料:
  • 问题内容: Python中是否有一种简单的方法可以生成一个范围内的随机数,但不包括该范围内的某些数字子集? 例如,我知道您可以使用以下方法生成0到9之间的随机数: 如果我有一个清单,例如不想退回该怎么办? 问题答案: 尝试这个:

  • 我有一个数字列表,比如 在实际代码中,这是从数据库生成的,所以这个数组最多可以容纳500个彼此不同的数字。 数据库中的每个数字都有发生的概率。所以我有一个以前执行的数据来生成从1到500的随机数,并记录了每个数生成1000次的概率。 现在有了数字列表和每个数字的概率,我想写一个函数,根据这些500个数字的概率,从中生成一个随机数。 例如: 所以变量$finallist看起来像这样: 现在,如果我运

  • 问题内容: 听起来很简单…但是我一直在努力解决这个问题,试图找到一个解决方案。 对于一个数字范围,例如 1-12 ,我想在该范围内生成一个随机序列, 并 包括 1 和 12 。 不过我不想重复数字 。 所以我想要这样的东西-3,1,8,6,5,4 ..依此类推,每个数字从1到12。 然后,我想将这些随机数放入,并使用该数组“随机”选择并在jsp页面上显示一些项目(例如从数据库中提取的清单)。 到目

  • 我需要在Java中随机生成一个有7个插槽的数组。所有这些插槽的值必须至少为1,但组合起来,则具有另一个定义数字的总值。它们也都需要是一个int值,没有1.5或0.9816465684646数字。示例: 我希望它生成类似的东西,但如果inta=15,所有的数字将以任何顺序总计15

  • 我想从randomInts(int-num,int-start,int-end)中获取随机数,并将这些数放入数组。 我试着做

  • 问题内容: 最重要的答案是建议使用switch语句来完成这项工作。但是,如果我要考虑的情况很多,那么代码看起来就很笨拙。我有一个巨大的switch语句,在每种情况下都一遍又一遍地重复非常相似的代码。 当您要考虑的概率很大时,是否有更好,更干净的方法来选择具有一定概率的随机数?(例如〜30) 问题答案: 这是一个Swift实现,受各种答案的影响很大,这些答案会生成具有给定(数字)分布的随机数 对于