Bonjour,

je débute en javascript et je fais face à un petit problème.

Je 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
function compteMots(s){
  var words = s.split(' ');
  return words.length;
}
La seconde compteMots2(s)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function compteMots3(s,sep){
  var j;
  var str;
  var k;
  for(j=0; j<sep.length;j++){
    str = s.split(sep[j]);
    s = "";
    for(k =0;k<str.length;k++){
      s += str[k];
    str = "";
    }
 
  }
  return compteMots2(s);
}
Voici les exemples donnés par le prof :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
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 avez des pistes à me donner ou des fonction que je ne connais pas qui pourraient m’être utiles.

Merci d'avance !