Vérifier si une valeur est déja dans un tableau

julesdev -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
J'ai un petit soucis en effet je ne trouve pas une manière de vérifier si un élément est déjà dans un tableau... je m'expliqe :


while (nombre_genere est déjà dans question posé) {
nombre_genere = Math.floor(Math.random() * (Object.keys(contenu_quiz).length));
questionPosees.push(nombre_genere);
}


en gros dans la ligne 1 j'aimerai ajouter ma condition dans le while c'est a dire "tant que le nombre généré appartient au tableau questionPosees continue de générer un nouveau nombre.

merci d'avance pour votre aide !!
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
julesdev
 
bonjour je ne comprend pas trop quoi faire avec indexOf parce que normalement c'est seulement pour donner la position d'un élément dans le tableau non ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as lu la documentation au moins ?
Et puis.... si tu as une position... c'est bien qu'il existe.... :-)
Dans le cas où l'élément n'est pas dans l'array... il retourne -1
0
julesdev
 
while (questionPosees.indexOf(nombre_genere) != -1) {
nombre_genere = Math.floor(Math.random() * (Object.keys(contenu_quiz).length));
questionPosees.push(nombre_genere);
}

j'ai éssayé ca mais ca ne marche pas
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Que contient ta variable contenu_quiz ? (où et avec quel code est-elle initialisée ? )
Que contient ta variable questionPosees ? (où et avec quel code est-elle initialisée ? )
As tu fais des console.log dans ton code pour voir ce qui se passe ?
0
julesdev
 
je n'ai pas fait de console.log je t'avoue que je ne sais pas trop ou les placés...
contenu_quiz = {
			0: {question: "Quel(le) est l'acteur ou l'actrice à avoir remporté le plus d'oscars ?",
				reponse1: "Jack Nicholson",
				reponse2: "Robert De Niro",
				reponse3: "Katharine Hepburn",
				reponse4: "Meryl Streep",
				bonne_reponse: "Katharine Hepburn",
				val_reponse: "reponse_3",
				url_img: "url('images/images_quizz/oscars.jpg')",
			},
			1: {question: "Qui est la personne la plus récompensée dans l'histoire des césars ?",
				reponse1: "Catherine Deneuve",
				reponse2: "Luc Besson",
				reponse3: "Agnès Varda",
				reponse4: "Jacques Audiard",
				bonne_reponse: "Jacques Audiard",
				val_reponse: "reponse_4",
				url_img: "url('images/images_quizz/cesar.jpg')",
			},
			2: {question: "Parmis tous ces Westerns lequel est un film de Sergio Leone ?",
				reponse1: "Le Bon, la Brute et le Truand",
				reponse2: "Pat Garrett et Billy le Kid",
				reponse3: "Danse avec les loups",
				reponse4: "La Prisonnière du désert",
				bonne_reponse: "Le Bon, la Brute et le Truand",
				val_reponse: "reponse_1",
				url_img: "url('images/images_quizz/western.jpg')",
			},
			3: {question: "Qui prononce cette phrase dans le film Fight Club « Les choses que l’on possède finissent par nous posséder » ?",
				reponse1: "Brad Pitt",
				reponse2: "Edward Norton",
				reponse3: "Meat Loaf",
				reponse4: "Jared Leto",
				bonne_reponse: "Brad Pitt",
				val_reponse: "reponse_1",
				url_img: "url('images/images_quizz/fight_club.jpg')",
			},
			4: {question: "Quel acteur tient le rôle de Christian dans le film  Moulin Rouge  ?",
				reponse1: "Colin Farrell",
				reponse2: "Ewan McGregor",
				reponse3: "Edward Norton",
				reponse4: "Jim Carrey",
				bonne_reponse: "Ewan McGregor",
				val_reponse: "reponse_2",
				url_img: "url('images/images_quizz/moulin_rouge.jpg')",
			},
			5: {question: "Quel acteur français prononce cette phrase dans le film dans Astérix et Obélix : Mission Cléopâtre « Excusez-moi d’en faire un sac, mais je vais finir dans un crocodile peut-être ! »",
				reponse1: "Jamel Debbouze",
				reponse2: "Alain Chabat",
				reponse3: "Édouard Baer",
				reponse4: "Gérard Darmon",
				bonne_reponse: "Jamel Debbouze",
				val_reponse: "reponse_1",
				url_img: "url('images/images_quizz/aff_asterix.jpg')",
			},
			6: {question: "À quel réalisateur doit-on le film « Maps to the Stars » ?",
				reponse1: "James Cameron",
				reponse2: "David Cronenberg",
				reponse3: "Jim Jarmusch",
				reponse4: "Michael Winterbottom",
				bonne_reponse: "David Cronenberg",
				val_reponse: "reponse_2",
				url_img: "url('images/images_quizz/Maps_to_the_Stars.jpg')",
			},
			7: {question: "Dans quel film de Tarantino entend-on cette réplique « C’est à une demi-heure d’ici. J’y suis dans dix minutes » ?",
				reponse1: "Pulp Fiction",
				reponse2: "Reservoir Dogs",
				reponse3: "Jackie Brown",
				reponse4: "Kill Bill",
				bonne_reponse: "Pulp Fiction",
				val_reponse: "reponse_1",
				url_img: "url('images/images_quizz/quentin-tarantino.jpg')",
			},
			8: {question: "Quel acteur de la Comédie française a réalisé le film « Les garçons et Guillaume, à table ! » ?",
				reponse1: "Lorànt Deutsch",
				reponse2: "Pascal Elbé",
				reponse3: "Guillaume Galienne",
				reponse4: "Clovis Cornillac",
				bonne_reponse: "Guillaume Galienne",
				val_reponse: "reponse_3",
				url_img: "url('images/images_quizz/a_table.jpg')",
			},
			9: {question: "Dans quel film entend-on cette réplique « J’adore l’odeur du napalm au petit matin » ?",
				reponse1: "Full Metal Jacket",
				reponse2: "Voyage au bout de l’Enfer",
				reponse3: "Apocalypse Now",
				reponse4: "Les Sentiers de la Gloire",
				bonne_reponse: "Apocalypse Now",
				val_reponse: "reponse_3",
				url_img: "url('images/images_quizz/napalm.jpeg')",
			},
			10: {question: "Quelle actrice est l’héroïne du film des frères Dardenne « Deux jours, une nuit » ?",
				reponse1: "Marion Cotillard",
				reponse2: "Zoé Félix",
				reponse3: "Sylvie Testud",
				reponse4: "Émilie Dequenne",
				bonne_reponse: "Marion Cotillard",
				val_reponse: "reponse_1",
				url_img: "url('images/images_quizz/deuxjours.jpg')",
			},
		}

voici comment est appelé contenu quiz
var nombre_genere,
	contenu_quiz,
	nbre_de_questions = 0,
	score = 0,
	questionPosees = [];

et question posé est appelée de cette manière au tout début du code je pense que l'erreur est ici
0