IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Erreur : replaceAll is not a function


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Reconversion
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par d�faut Erreur : replaceAll is not a function
    Bonjour,

    Je m'entraine � faire quelques exercices de JS sur une plateforme d'entrainement.

    J'obtiens l'erreur mentionn�e dan le titre sur la ligne suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    return t.replaceAll(/0/g,'1');
    Voici la fonction enti�re qui fonctionne correctement sur js fiddle mais pas sur la plateforme (code wars) :

    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
    18
    19
    20
     
    function test(s) {
    let infected =0;
    let safe=0;
     
      let tab = s.split("X").map((t) => {
      	if(t.includes('1')) {
        infected+=t.length;
        	return t.replaceAll(/0/g,'1');
        } else {
        safe+=t.length;
        return t;
        }
      });
      console.log(infected/(infected+safe)*100);
      return infected/(infected+safe)*100;
     
    }
     
    infected("01000000X000X011X0X");
    merci pour votre aide

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par d�faut
    Bonjour,

    Sur quel navigateur rencontrez-vous le probl�me ? En avez-vous essay� un autre ?

    Votre exemple semble incorrect.
    Vous d�finissez une fonction qui s'appelle test() et vous appelez infected("01000000X000X011X0X");.
    Difficile d'�tre certain de ce que vous faites et donc de comment tester.

    D'ailleurs dans votre fonction, vous d�finissez la variable tab qui est cens�e contenir le r�sultat de votre replaceAll() mais vous ne faites rien du tout avec, c'est �trange...

    Perso, voici le code que j'ai test� et je n'ai aucune erreur (test� sur Chrome, Firefox & MS Edge) (il y a bien une erreur sur Internet Explorer mais �a n'a pas de sens d'en tenir compte)

    Code javascript : 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
    18
    19
    20
    21
    22
    23
    <script>
        function test(s) {
            let infected = 0;
            let safe = 0;
     
            let tab = s.split("X").map((t) => {
                if (t.includes('1')) {
                    infected += t.length;
                    console.log('return ici', t);
                    return t.replaceAll(/0/g, '1');
                } else {
                    console.log('return là ', t);
                    safe += t.length;
                    return t;
                }
            });
            console.log('infected result', infected / (infected + safe) * 100);
            return infected / (infected + safe) * 100;
     
        }
     
        test("01000000X000X011X0X");
    </script>


    Affiche en console :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    return ici 01000000
    return000
    return ici 011
    return0
    return là  
    tab (5) ['11111111', '000', '111', '0', '']
    infected result 73.33333333333333

  3. #3
    Membre �prouv�
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Reconversion
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par d�faut
    Oui, veuillez m'excuser, j'ai commis des erreurs d'�tourderie, merci de les avoir rectifi�es.
    Du coup, en utilisant le code que vous fournissez, j'ai toujours la m�me erreur. Voici une capture d'�cran du script sur la plateforme qui g�n�re le soucis.

    Nom : Capture d��cran 2021-09-14 141006.png
Affichages : 113
Taille : 22,6 Ko

    Puis le log d'erreur en lui-m�me :

    Nom : Capture d��cran 2021-09-14 141027.png
Affichages : 111
Taille : 14,0 Ko

    A toutes fins utiles, voici le lien de l'exercice : https://www.codewars.com/kata/5e2596...ain/javascript

    Merci pour votre aide

  4. #4
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par d�faut
    Bonjour d'apr�s l'�nonc�, tu n'as pas besoin de "remplacer" les 0 par des 1 :
    • 1 infect� -> tous infect�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
    18
    19
    20
    21
    function infected(s) {
      let total = 0; // nombre total
      let infec = 0; // nombre infectés
      let ratio = 0;
      s.split('X').map((t) => {
        total += t.length; // on incrémente le total
        if( t.includes('1') ) // 1 infecté -> tous infectés
        {
          infec += t.length; // on incrémente les infectés
        }
      });
      ratio = (total!=0)? (100*infec/total) : 0; // pourcentage
    //  ratio = (total!=0)? Math.floor(1000*infec/total)/10 : 0; // pourcentage, à 1 décimale
      return ratio;
    /* // résultat complet
      let affich = 'Population totale : '+total+"\n";
      affich += 'Nombre d\'infectés : '+infec+"\n";
      affich += 'Pourcentage d\'infectés : '+ratio+'%';
      return affich;
    */
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    let s = "01000000X000X011X0X";
    console.log( s );
    console.log( infected(s) );
    Sinon, concernant le message d'erreur, il semble que ce soit un probl�me de version de JS sur le site.
    Note that the String.prototype.replaceAll() method was added in ES2021/ES12.

  5. #5
    Membre �prouv�
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Reconversion
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par d�faut
    Merci, c'est vrai que dans l'exemple de l'�nonc�, ils classent les 0 et les 1, mais effectivement c'est inutile !
    Bon en tout cas, impossible de soumettre l'exercice !

  6. #6
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par d�faut
    Re.

    1- sur le site www.codewars.com :

    2- il faut aussi traiter le cas "XXXXX" (total=0, or la division par 0 est interdite)
    d'o� :
    Code js : S�lectionner tout - Visualiser dans une fen�tre � part
      ratio = (total!=0)? (100*infec/total) : 0; // pourcentage

    3- mon code (ci-apr�s r�duit) passe le test avec succ�s !

    Code js : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function infected(s) {
      let infec = 0;
      let total = 0;
      s.split("X").map((t) => {
        total += t.length;
        if(t.includes('1')) {
          infec += t.length;
        }
      });
      return (total != 0)? (infec/total)*100 : 0; // pourcentage
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AJAX] Erreur : $.ajax is not a function
    Par js777 dans le forum jQuery
    R�ponses: 1
    Dernier message: 20/12/2019, 18h05
  2. Erreur dispatchEvent is not a function
    Par lobarbad dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 15/11/2018, 19h26
  3. Erreur : X is not a function (evaluating 'Y(n)')
    Par Anonyme1784 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 26/06/2015, 22h47
  4. [AJAX] erreur : load is not a function
    Par Agriesean dans le forum AJAX
    R�ponses: 4
    Dernier message: 11/11/2011, 12h02
  5. [AJAX] erreur: is not a function avec liste d�roulante
    Par dr_octopus74 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 21/04/2007, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo