2017-09-13 158 views
0

我制作了一个报价生成器,但经常出现这种情况,因为只有几个报价,同一个报价在连续两次显示。我将如何检查并避免此问题?检查相同的数字是否在连续两次被随机化

randomNum = Math.floor((Math.random() * quotes.length)); 
    randomQuote = quotes[randomNum]; 
    randomAuthor = author[randomNum]; 

    $("#quote").text(randomQuote); 
    $("#author").text(randomAuthor); 
} 

$("#newQuote").on('click', function() { 
    getQuote(); 
}); 

Full code

+1

更换randomNum = Math.floor((Math.random()*quotes.length))只要记住最后的报价和比较? – Max

+1

制作一系列引号并对其进行洗牌。 – Kokodoko

回答

1

您可以检查新的随机报价是否等于之前的报价,如果是,则更改。

while(randomQuote === quotes[randomNum]) 
     randomNum = Math.floor((Math.random()*quotes.length)); 
+0

感谢我的解决方案,但我认为这是行不通的。这是我为什么这么想的原因。如果新的随机引用与前面的一样,那么while循环中的代码将改变它,但为什么代码仍然工作,如果新的随机引用不同于前一个引用,它不应该只是工作,如果它是一样? – KestVir

+0

检查代码是否正确,循环内的代码是不会改变randomQuote的,它只是在改变randomNum – Dij

+0

另外,忘了问,功能是如何执行的,如果randomNum只有一个值,当条件while循环是真的吗?对不起,如果问题很明显,我对while循环不太好 – KestVir

相关问题