首页 > 解决方案 > 不是来自数组的随机数

问题描述

我试图在我的 array_Block01 中找到一个不等于任何数字的随机数。我似乎只能在我的数组中找到一个随机数,但是我如何在我的数组之外找到一个数字?

var array_Block01 = []
  while(array_Block01.length < 9){
      var r = Math.floor(Math.random()*9) + 1;
      if(array_Block01.indexOf(r) === -1) array_Block01.push(r);
  }
RandomValue = array_Block01[Math.floor(Math.random()*array_Block01.length)]; 

标签: javascript

解决方案


好的,这是执行此操作的代码 -

var array_Block01 = []
  while(array_Block01.length < 9){
      var r = Math.floor(Math.random()*9) + 1;
      if(array_Block01.indexOf(r) === -1) array_Block01.push(r);
  }
function getRandomExceptArray(arr){
    while(true){    
        let randValue = Math.floor(Math.random() * 18); //18 is upper limit
        if(randValue !==0 && arr.indexOf(randValue) === -1) return randValue;
    }
}
RandomValue = getRandomExceptArray(array_Block01);

推荐阅读