如何从数组中获取随机数而不用Java语言重复?

时间:2019-06-28 10:18:55

标签: javascript arrays

我正在尝试从数字数组(即cardNumbertemp)中返回一个随机数。

    function cardRandomiser(){
        randomCard = Math.floor(Math.random()*cardNumbertemp.length);
        for (var i = 0; i < cardNumbertemp.length; i++){
            if (randomCard === cardNumbertemp[i]){
                cardNumbertemp.splice(i,1);
                return randomCard;
            }
        }
    }

此函数需要从数组中返回一个随机数(cardNumbertemp),然后从数组中删除该数。它可以工作,但是有时返回的是undefined。

2 个答案:

答案 0 :(得分:1)

如果您希望获得一个随机数,则可以使用以下代码。理想情况下,除非您不想再有该号码,否则无需拼接。

var cardNumbertemp = [45, 78, 23, 89];

(function() {
  console.log(getRandom());
})();

function getRandom() {
  randomCard = Math.floor(Math.random() * cardNumbertemp.length);
  return cardNumbertemp[randomCard];
}

答案 1 :(得分:0)

let cardNumbertemp = [45, 78, 23, 89];  

for(let i = 0; i < cardNumbertemp.length + i; i++){
    // will give you random number b/w 0 & (length of given array - 1)
    let randomIndex = Math.floor((Math.random() * cardNumbertemp.length));

    console.log(cardNumbertemp[randomIndex]); // output random array value
    cardNumbertemp.splice(randomIndex, 1); // maintain unique random value
}