Rle en JS
maxrzk
Messages postés
6
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Bonjour,
Etant débutant en JS je viens vous demander de l'aide il faut absolument que je parvienne a réaliser un rle en JS. Mon programme devra demander une liste (ex BBBBBBNN) et le programme devra donner 6B2N. J'ai bien compris qu'il fallais utiliser for et if mais je ne sais pas comment mdr. De plus je pense qu'il faudrais une sorte de compteur...
PS:Merci a la personne qui m'a rapeler que j'avais un cerveau XD
Bonjour,
Etant débutant en JS je viens vous demander de l'aide il faut absolument que je parvienne a réaliser un rle en JS. Mon programme devra demander une liste (ex BBBBBBNN) et le programme devra donner 6B2N. J'ai bien compris qu'il fallais utiliser for et if mais je ne sais pas comment mdr. De plus je pense qu'il faudrais une sorte de compteur...
PS:Merci a la personne qui m'a rapeler que j'avais un cerveau XD
4 réponses
-
Mais oui.
Il te faut une boucle
un IF pour tester si la valeur de ta boucle est identique à la précédente ou non
Une variable que tu incrémentes à chaque tour de boucle et que tu réinitialise lorsque tu changes de lettre
Une variable pour stocker le résultat final
-
-
-
-
Au passage ... au lieu du for .. tu peux utiliser un forEach
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach
Et pour spliter :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split
Pour l'incrémentation :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators -
-
-
De rien
Et je te redonne même le lien
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/ -
var a;
a=prompt("Quel est la liste ?");
var resultat;
var tableau = [];
tableau [0] = "B";
tableau [1] = "N";
C'est bien comme début ? -
Bon.... je suppose que le week end a été dur pour tout le monde.... et que tu vas t'agacer si tu ne trouves pas rapidement la solution...
Vu la simplicité de l'exo.. je vais te donner la réponse.... ne pouvant assurer un suivi de la discussion toute la nuit... :-)
Donc voici deux façons de résoudre ton exo :
Solution 1 :function solution1(){ //on initialise les variables var result= ""; var compteur = 0; var liste = prompt("Quel est la liste ?"); var carprec = null; //on transforme ta liste en array var arr = liste.split(''); //on boucle sur chaque lettre arr.forEach(function(element) { if(element != carprec && carprec!=null){ result += compteur + carprec; compteur = 0; } //on incrémente le compteur compteur++; //on stocke le caractère précédent pour le if carprec = element; }); result += compteur + carprec; alert(result); }
Solution 2 :// Autre façon de faire : function solution2(){ var str = prompt("Quel est la liste ?"); var counts = {}; // Misc vars var ch, index, len, count; // Loop through the string... for (index = 0, len = str.length; index < len; ++index) { // on récupère le caractère ch = str.charAt(index); //on compte le nombre de caractère correspondant et on stocke dans l'array counts counts[ch] = typeof(counts[ch]) !='undefined' ? counts[ch]+1 : 1; } console.log(counts); //on construit la chaine de resultat pour l'afficher var result=""; for ( var key in counts){ result += counts[key] + key; }; alert(result); }
Cordialement,
Jordane