Est-il possible de choisir une variable dans un tableau une seule fois? J'ai fait une fonction de clic où il me donne un devis aléatoire chaque fois que je clique. Comment puis-je faire en sorte qu'il ne choisisse plus la même variable?

Ce que je veux pouvoir faire, c'est cliquer sur le bouton autant de fois que je le veux sans refaire la même citation tant qu'il y a plus de citations "invisibles". (Je n'ai pas inclus toutes les citations originales dans les extraits de code).

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
Ossian Lundberg 16 avril 2018 à 18:40

4 réponses

Meilleure réponse

Je pense que ce que vous voulez, c'est simplement supprimer la citation du tableau après l'avoir montrée ... donc quelque chose comme ça devrait fonctionner:

quotes.splice(randomNumber, 1);

Si vous l'ajoutez à newQuote () en bas ...

0
Simon 16 avril 2018 à 15:45

Supprimez simplement l'élément du tableau lorsque vous en avez terminé.

    quotes.splice(randomNumber, 1);
0
digital-pollution 16 avril 2018 à 15:48

Ou vous poussez simplement les mots utilisés dans un tableau séparé et vérifiez avec

usedWordsArray.includes('Catsy')
0
b3nc1 16 avril 2018 à 15:46

Un moyen simple de procéder consiste à mélanger une copie du tableau, puis à le parcourir. Voir cette réponse pour savoir comment le mélanger:

Comment randomiser (mélanger) un tableau JavaScript?

1
frodo2975 16 avril 2018 à 15:45