Menu

Rle en JS

maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention - 12 nov. 2017 à 21:03 - Dernière réponse : jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention
- 14 nov. 2017 à 15:50
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



Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:06
1
Merci
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

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 23878 internautes ce mois-ci

jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention > jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:20
maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention > jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:21
merci bcp de ton aide mdrr je débute vraiment j'en suis a mes premieres heure donc ne le prend pas mal si je ne comprend pas tout tout de suite
maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention - 12 nov. 2017 à 21:19
comment je fait pour que ma boucle ne tourne pas à l'infini ?
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention > maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention - 12 nov. 2017 à 21:21
En utilisant le foreach que je viens de te donner
maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention > jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:41
merci j'essaye tous sa
Commenter la réponse de jordane45
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:04
Commenter la réponse de jordane45
maxrzk 7 Messages postés dimanche 12 novembre 2017Date d'inscription 12 novembre 2017 Dernière intervention - 12 nov. 2017 à 21:26
0
Merci
var a;
a=prompt("Quel est la liste ?");
var resultat;
var tableau = [];
tableau [0] = "B";
tableau [1] = "N";


C'est bien comme début ?
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 12 nov. 2017 à 21:44
Non.
Tu ne sais pas à l'avance quelles seront les lettres....
C'est pour ça qu'il faut SPLITER la variable issue de ton PROMPT

Regarde déjà ce que donne ces lignes de code :
var a=prompt("Quel est la liste ?"); 
var arr = a.split('');

console.log(arr);
Commenter la réponse de maxrzk
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - Modifié par jordane45 le 12/11/2017 à 21:54
0
Merci
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                                                                 
Bonjours désolé pour mon absence... Merci de votre aide mais je n'arrive pas a faire fonctionner le programme....
jordane45 21447 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention > maxrzk - 14 nov. 2017 à 15:50
Tu as essayé quoi , où , comment ??
Commenter la réponse de jordane45