javascript - 在javascript中绘制后如何避免重复?

标签 javascript html user-experience

单击“开始”按钮后,会出现八个单词之一。我想知道如何编写一个禁止重复的函数,这样一个词就不会显示两次。有任何想法吗?感谢所有帮助:)

<!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/

相关文章:

javascript - 我如何获得网站中最顶部定位图像的链接?

javascript - AngularJS 解析函数超时

javascript - textContent 并删除\r\n?

javascript - 没有数据的 Twitter 事件

asp.net - 必填表单域通信

javascript - github的页面加载进度条是如何工作的?

javascript - 如何在侧边栏内创建进度条?

javascript - 链式方法调用不适用于原始元素或克隆元素,为什么?

javascript - 单击超链接页面移动

php - 如何保护没有表单的php页面