从数组中随机选择项目,仅在之前未使用过时使用

时间:2015-03-02 13:02:08

标签: javascript arrays function compare var

我正在创建一个刽子手游戏,我正在从预定义的数组中选择一个随机单词。

像这样:



// Select random word to guess
function getWord() {
  var a = new Array('one', 'two', 'three', 'four');
  return a[parseInt(Math.random() * a.length)];
}




我想做的是阻止它选择两次或更多相同的单词。 目前,当使用一小组单词时,它有时会连续两次或三次重复相同的单词。

我不太确定如何打击这个。

首先,我想可能会将这个单词插入一个新变量,然后比较但不确定这是一个很好的方法。

任何想法都会有所帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用array splice删除随机位置的元素,然后当数组长度为0时,重新初始化它 这样的事情:

var all_words = [];
function getWord() {
    if (all_words.length === 0) {
        all_words = new Array('one', 'two', 'three', 'four');
    }
    var randIndex = parseInt(Math.random() * all_words.length);
    var chosenWord = all_words.splice(randIndex, 1);
    return chosenWord;
}

这是demo