避免javascript中字符串的随机数组中的重复元素

时间:2016-04-25 05:08:19

标签: javascript

现在,让我们知道我已经看了一遍,我一直无法找到我所遇到的具体问题的答案。我是JS的新手,我一直在努力自学,所以我可能会做一个非常基本的,#34; noob"错误。

提前道歉。

我试图制作一个"随机发生器"各种,基本上从给定列表中拉出两个单词,我不太确定如何避免出现重复结果。

我想我在以下代码中做错了什么:

var randomDiv = document.getElementById("myRandomDiv");

document.getElementById("myButton").addEventListener("click", function() {
      randomIndex = Math.ceil((Math.random()*randomStrings.length-1));
      randomIndex2 = Math.ceil((Math.random()*randomStrings.length-1));
      newText = randomStrings[randomIndex]+" + ";
      newText2 = randomStrings[randomIndex2];
      randomDiv.innerHTML = newText+newText2;

2 个答案:

答案 0 :(得分:0)

您需要继续抓取randomIndex2,直到获得不同的值

替换

randomIndex2 = Math.ceil((Math.random()*randomStrings.length-1));

randomIndex2 = Math.ceil((Math.random()*randomStrings.length-1));
while( randomIndex == randomIndex2 )
{
   randomIndex2 = Math.ceil((Math.random()*randomStrings.length-1));
}

答案 1 :(得分:0)

您可以在代码中添加类似内容以避免重复:

while(randomIndex === randomIndex2 && randomStrings.length > 1) {
   randomIndex2 = Math.ceil((Math.random()*randomStrings.length-1));
}

在您为randomIndexrandomIndex2分配后。

如果您只有一个字符串,randomStrings.length > 1将确保您不会陷入无限循环。