Javascript - 从数组中选择随机变量,但只选择一次

时间:2018-04-16 15:40:51

标签: javascript html

是否可以只在数组中选择一次变量?我做了一个点击功能,每次点击它都会给我一个随机引用。如何制作它以便它不会再次选择相同的变量?

我希望能够做的就是按照我想要的次数单击按钮,而不会再次遇到相同的引用,只要有更多“看不见的”引号。 (我没有在代码片段中包含所有原始引号。)

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>	

4 个答案:

答案 0 :(得分:1)

一种简单的方法是对数组的副本进行混洗,然后迭代它。请参阅此答案,了解如何改变它:

How to randomize (shuffle) a JavaScript array?

答案 1 :(得分:0)

我认为你想要的是在显示它之后简单地从数组中删除引用..所以这样的事情应该有效:

System.Char[]

如果你把它添加到底部的newQuote()......

答案 2 :(得分:0)

或者您只需将已使用的单词推送到单独的数组中并使用

进行检查
usedWordsArray.includes('Catsy')

答案 3 :(得分:0)

完成后,只需从数组中删除该项目。

    quotes.splice(randomNumber, 1);