11523 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Pourriez-vous m'aider à traduire ceci en JS, le but est de sortir une chaîne de 15 chiffres aléatoires entre 2 et 6, du genre 243564532434656 mais sans que deux chiffres identiques ne se suivent.
Je l'avais fait en PHP, mais j'ai finalement besoin de le faire en JS
for($i=0;$i<15;$i++){
	$alea[$i]=rand (2 , 6);
	while($alea[$i]==$alea[$i-1]) $alea[$i]=rand(2,5);
	$out=$out.$alea[$i];
}

Merci d'avance pour votre aide!
Modifié par lefaye (12 Jul 2014 - 09:34)
Voila j'espère que cela va te convenir


var alea = new Object();
var out  = '';
for (a = 0; a < 15; a++) { 
	alea[a] = Math.floor(Math.random() * ((6 - 2) + 1)) + 2;
	while(alea[a] == alea[a-1]){
		
		alea[a] = Math.floor(Math.random() * ((5 - 2) + 1)) + 2;	
	}
	out += alea[a];
}

// Juste pour vérifier dans console
console.log(out);

Modifié par semantic (12 Jul 2014 - 11:01)
Nickel, merci bien pour ta réponse et pour le code!

Je vois juste que j'avais fait une petite erreur: c'était bien la même fonction dans la boucle qu'en dehors, le rand(2,5) devrait être rand(2,6). Mais ça ne change rien à la structure.
Je pense encore à quelque chose en regardant ton code... (6-2)+1=5, non? D'ailleurs, les parenthèses ne sont même pas nécessaires (oui, je suis prof de maths pointilleux Smiley biggrin )

var alea = new Object();
var out  = '';
for (a = 0; a < 15; a++) { 
	alea[a] = Math.floor(Math.random() * 5) + 2;
	while(alea[a] == alea[a-1]){
		
		alea[a] = Math.floor(Math.random() * 5) + 2;	
	}
	out += alea[a];
}
Oui t'as raison . J'ignore pourquoi j'ai placé des parenthèses Smiley ohwell . Je me suis juste contenté de remplacer sans réfléchir...ça m'apprendra à aller trop vite et à ne pas faire fonctionner ma matière grise Smiley lol
En tout cas content que le code te convienne