Javascript 传递数组以填充数组

Javascript 传递数组以填充数组,javascript,Javascript,我有一个数组,可以是任意长度的rWords。我正在尝试开发一个函数,随机选择六个,并将它们分配为六个分区中的文本,这将是用户在问答类游戏中单击的选项 我的问题是:我可以从rWords中随机获得六个单词的数组,并将它们指定为文本。然而,有时你会在数组中得到两个相同的单词,这是我不想要的 随机单词Function:(html上有六个方块) 我想这就是你要找的 rWords = [ "foo", "bar", "baz", "boo", "help", "me", "eve

我有一个数组,可以是任意长度的rWords。我正在尝试开发一个函数,随机选择六个,并将它们分配为六个分区中的文本,这将是用户在问答类游戏中单击的选项

我的问题是:我可以从rWords中随机获得六个单词的数组,并将它们指定为文本。然而,有时你会在数组中得到两个相同的单词,这是我不想要的

随机单词Function:(html上有六个方块)


我想这就是你要找的

rWords = [
  "foo",
  "bar",
  "baz",
  "boo",
  "help",
  "me",
  "everything",
  "is",
  "alright"
]

function shuffle(array) {
  array.sort(() => Math.random() - 0.5);
}

function randomWord() {
  var pArr = [];
  words = rWords.slice()
  for (i=0; i<6; i++){
    shuffle(words);
    pArr.push(words.pop())
  }
  return pArr;
}

console.log(randomWord())
console.log(randomWord())
console.log(randomWord())

您需要(随机)洗牌数组,然后逐个使用该数组中的值。关于如何洗牌一个数组,有几个问题。trincot的评论指出了实现这一点的众多方法之一,我添加了另一个副本,也谈到了其他一些方法。要执行的相关搜索:。更多关于搜索的信息。
For(i=0; i<squares.length;i++){
  Squares[i].textcontent = randomWord();
}
rWords = [
  "foo",
  "bar",
  "baz",
  "boo",
  "help",
  "me",
  "everything",
  "is",
  "alright"
]

function shuffle(array) {
  array.sort(() => Math.random() - 0.5);
}

function randomWord() {
  var pArr = [];
  words = rWords.slice()
  for (i=0; i<6; i++){
    shuffle(words);
    pArr.push(words.pop())
  }
  return pArr;
}

console.log(randomWord())
console.log(randomWord())
console.log(randomWord())
[ 'alright', 'everything', 'is', 'boo', 'help', 'bar' ]
[ 'alright', 'help', 'is', 'me', 'foo', 'boo' ]
[ 'me', 'alright', 'everything', 'bar', 'help', 'baz' ]