单击“开始”按钮后,会出现八个单词之一。我想知道如何编写一个禁止重复的函数,这样一个词就不会显示两次。有任何想法吗?感谢所有帮助:)
<!DOCTYPE html>
<html>
<head></head>
<body>
<button id= "go">go</button>
<div id="word"></div>
<script type="text/javascript">
var words = ["Michael", "Simon", "Peter", "Mark", "Jason", "Paul", "Steve", "George"];
var btn1 = document.getElementById("go");
btn1.addEventListener("click", fill_in);
function getRandomItem(array) {
return array[Math.floor(Math.random() * array.length)]
}
function fill_in(){
var randomWord = getRandomItem(words);
document.getElementById('word').innerHTML += randomWord + " ";
}
</script>
</body>
</html>
最佳答案
你应该这样写方法getRandomItem
。
function getRandomItem(array) {
return array.splice(Math.floor(Math.random() * array.length), 1)[0];
}
基本上,您需要在显示元素后将其移除。还好,Array#splice
非常适合您的情况,因为它会删除元素并返回包含它的数组。
关于javascript - 在javascript中绘制后如何避免重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225694/