现在,让我们知道我已经看了一遍,我一直无法找到我所遇到的具体问题的答案。我是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;
答案 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));
}
在您为randomIndex
和randomIndex2
分配后。
如果您只有一个字符串,randomStrings.length > 1
将确保您不会陷入无限循环。