Compteur de mots (javascript débutant)

Bonjour ,

e dois écrire une fonction compteMots3(s,sep) qui compte le nombre de mots séparés par les séparateurs contenus dans la chaîne sep.

NB: Auparavant j'ai du ecrire une fonction compteMots(s) et compteMots2(s) permettent de compter le nombre de mots séparés par un seul espace dans une chaîne s et permettant de compter le nombre de mots séparés par un espace au moins contenu dans la chaîne s.

Voici la premiere compteMots(s)
Code :
function compteMots(s){
  var words = s.split(' ');
  return words.length;
}

La seconde compteMots2(s)
Code :
function compteMots2(s){
  var i =0;
  var compte =0;
  while(i<s.length){
    if(s[i]==' '){
      i++;
    }
    else{
      compte += 1;
      while(s[i]!= ' '){
        i++;
      }
    }
 
  }
  return compte;
}


Pour ces deux ci-dessus, elles fonctionnent et je bloque sur la troisième compteMots3(s,sep).
Voici ce que j'ai fait :

Code :

function compteMots3(s,sep){
  var i;
  var j;
  var compte=0;
  for(j=0;j<s.length;j++){ 
    for(i=0;i<sep.length;i++){
      if(s[j]==sep[i]){
        j++;
      }
      if(s[j]!=sep[i]) {
        compte +=1;
        while(s[j]!=sep[i]){
          j++;
        }
      }
    } 
  }
  return compte;
}

Voici les exemples donnés par le prof :

compteMots('la maman de Colette et de Daniel'); // 7

compteMots2(' la maman de Colette et de Daniel '); // 7

compteMots3('Ceci, mais oui, est une phrase !', ' !,') // 6

Si vous pouviez m'éclairer ou même me proposer une solution.

Cordialement !

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour
    C'est la même chose que ta première fonction...à la différence que tu mets le separateur (sep) dans le split
    au lieu de (' ')
    1. oui seulement la il peut y avoir plusieurs séparateur et je ne peux pas mettre de boucle pour split plusieurs fois si ?
    2. Modérateur
      @kazuteTu peux boucler...
      Ou mieux..utiliser une regex dans le split