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 :

array.includes() ne trouve pas l'occurrence


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut array.includes() ne trouve pas l'occurrence
    Bonjour
    Est ce quelqu'un peut m'expliquer la différence entre ces deux codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const array = ["test"];
     if(array.includes("test")){
    }
    Le code ci-dessus fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const array = ["test"];
    name = aTag.text.toLowerCase().replaceAll(" ","");
    if(array.includes(name)){
    }
    aTag.text contient "test" mais ce code ne trouve pas test dans l'array.

    Merci de vos réponses.

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 489
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 489
    Par défaut
    partant de ton postulat : aTag.text contient "test"
    le code fonctionne correctement
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const aTag = {
    text:'test'
    };
     
    const array = ["test"];
    name = aTag.text.toLowerCase().replaceAll(" ","");
    if(array.includes(name)){
      console.log('ok'); // affiche correctement "ok"
    }

    le mieux est de faire un console.log(name); juste avant ton test : a mon avis, aTag.text ne contient pas "test"
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut
    Si j'ajoute le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(name.includes("test")){
        console.log("name "+name);
    }
    J'obtiens bien test dans name.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Attention il semblerait que includes soit une méthode pour les tableaux mais aussi pour les string...

    Et le fonctionnement n'est pas tout-à-fait le même :
    Code javasript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var array1 = ["pretestsuf"];
    var name = "pretestsuf"
     
    console.log(array1.includes("pretestsuf"));
    // true
    console.log(array1.includes("test"));
    // false
    console.log(name.includes('test'));
    // true

    On peut voir notamment que console.log(name.includes('test')); affiche true alors que name n'est pas égal à "test"...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut
    C'est normal includes cherche si une chaine est contenue dans une autre chaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    name = "pretestsuf";
    name.includes("test")
    donne true puisque test est dans pretestsuf.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ben oui c'est normal...

    Mais je voulais attirer l'attention sur un point : le fait que console.log(name.includes('test')); affiche true ne signifie pas forcément que name soit égal à "test" et donc console.log(array1.includes(name)); pourrait afficher false même si array1 contient la chaine "test"...


    Citation Envoyé par Daydreamer01 Voir le message
    Si j'ajoute le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(name.includes("test")){
        console.log("name "+name);
    }
    J'obtiens bien test dans name.
    Si name est égal à "test" alors console.log(array1.includes(name)); devrait afficher true si array1 contient la chaine "test" (autrement dit si la chaine "test" est un élément du tableau array1)...

Discussions similaires

  1. Arrays.binarySearch ne trouve pas mon B
    Par grabriel dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/12/2012, 09h13
  2. Include ne trouve pas le fichier
    Par poussinvert dans le forum Langage
    Réponses: 1
    Dernier message: 07/11/2008, 13h40
  3. [Debutant] dev c++ trouve pas include irrlicht
    Par Delf dans le forum Dev-C++
    Réponses: 3
    Dernier message: 02/03/2006, 15h32
  4. [TP]trouve pas le graph.tpu
    Par kaygee dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 13/06/2003, 12h49
  5. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15

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