为什么getRandimInt返回undefined?

时间:2017-08-20 13:04:38

标签: javascript

我有一个数组名称winArr。

let winArr = [[[1,2],[3,6],[4,8]],
              [[0,2],[4,7]],
              [[0,1],[4,6],[5,8]],
              [[0,6],[4,5]],
              [[0,8],[1,7],[2,6],[3,5]],
              [[2,8],[3,4]],
              [[0,3],[2,4],[7,8]],
              [[1,4],[6,8]],
              [[0,4],[2,5],[6,7]] ] ;

现在我生成0到8的随机整数。我不想得到已经得到的那个。

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  let ranInt = Math.floor(Math.random() * (max - min)) + min;
  if(winArr[ranInt] === null) {
    getRandomInt(min,max) ;
  } else {
    winArr[ranInt] = null ;
    return ranInt ;
  }
} 

我将这个函数调用九次,所以我想每次得到不同的九个整数getRandomInt(0,8) ;。但有些此函数正在返回undefined

2 个答案:

答案 0 :(得分:0)

更改

getRandomInt(min,max) ;

return getRandomInt(min, max);

答案 1 :(得分:0)



let winArr = [[[1, 2], [3, 6], [4, 8]],
              [[0, 2], [4, 7]],
              [[0, 1], [4, 6], [5, 8]],
              [[0, 6], [4, 5]],
              [[0, 8], [1, 7], [2, 6], [3, 5]],
              [[2, 8], [3, 4]],
              [[0, 3], [2, 4], [7, 8]],
              [[1, 4], [6, 8]],
              [[0, 4], [2, 5], [6, 7]]];

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    let ranInt = Math.floor(Math.random() * (max - min)) + min;
    if (winArr[ranInt] === null) {
       return getRandomInt(min, max);
    } else {
        winArr[ranInt] = null;
        alert(ranInt);
        return ranInt;
    }
}

getRandomInt(0, 8);