是否可以只在数组中选择一次变量?我做了一个点击功能,每次点击它都会给我一个随机引用。如何制作它以便它不会再次选择相同的变量?
我希望能够做的就是按照我想要的次数单击按钮,而不会再次遇到相同的引用,只要有更多“看不见的”引号。 (我没有在代码片段中包含所有原始引号。)
var quotes = [
'Catsy',
'Jope',
'Nope',
'Hey',
]
function newQuote() {
var randomNumber = Math.floor(Math.random()*(quotes.length));
document.getElementById('quoteDisplay').innerHTML = quotes[randomNumber];
}
html {
background: url(bild.jpg)
no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
h1 {
text-align: center;
color: rgb(77, 77, 77);
font-size: 120px;
font-family: "Courier New", monospace;
}
div {
color: white;
text-align: center;
font-family: "Courier New", monospace;
justify-content: center;
font-size: 45px;
margin-right: 400px;
margin-left: 400px;
}
button {
height:30px;
width:150px;
margin: 300px -100px;
position: absolute;
top:50%;
left:50%;
font-size: 16px;
font-family: "Courier New", monospace;
}
<!DOCTYPE html>
<html>
<head>
<title>Bop</title>
<link rel="stylesheet" type="text/css" href="fp.css">
</head>
<body>
<h1>Mjao</h1>
<div id="quoteDisplay">
</div>
<button onclick="newQuote()">Another one!</button>
<script src="fp.js"></script>
</body>
</html>
答案 0 :(得分:1)
一种简单的方法是对数组的副本进行混洗,然后迭代它。请参阅此答案,了解如何改变它:
答案 1 :(得分:0)
我认为你想要的是在显示它之后简单地从数组中删除引用..所以这样的事情应该有效:
System.Char[]
如果你把它添加到底部的newQuote()......
答案 2 :(得分:0)
或者您只需将已使用的单词推送到单独的数组中并使用
进行检查usedWordsArray.includes('Catsy')
答案 3 :(得分:0)
完成后,只需从数组中删除该项目。
quotes.splice(randomNumber, 1);