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 :

Comment verifier qu'une valeur appartient a un tableau


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Points : 107
    Points
    107
    Par défaut Comment verifier qu'une valeur appartient a un tableau
    Existe il un equivalent en javascript qui pourrait m'eviter de faire une boucle pour savoir si une valeur appartient a mon tableau ?

    mon probleme :
    J'ai un compteur cpt variant de 0 a 99 et un tableau mines[] de 10 elements
    je compare la valeur de cpt a la valeur de mines[cpt] pour fixer un attribut.

    Cela ne marche que si cpt<10 et que mines[cpt] < 10, mines[cpt] pouvant prendre une valeur entre 0 et 99

    çà serait mieux ainsi : si valeur de cpt appartient a mines[], fixer attribut.

    J'espere avoir etait clair. Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Points : 107
    Points
    107
    Par défaut
    J'ai fait ceci, çà marche mais bon çà ne reponds pas a ma question et donc je trouve ce code lourd dans le sens ou cette "verification" est executée autant de fois que j'ai de case dans mon tableau au moment de l'initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		for (var z=0; z<mines.length; z++){
    			if (cpt == mines[z]){
    				this.mine = true;
    				tile.style.backgroundImage = "url('mine.png')";
    			}
    		}

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    On puet imaginere un prototype qui returne vrai ou faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
    tab= new Array(2,4,6,8,99,5,55,2,11,2,66)
    Array.prototype.Appartient=function(elt){
    Temp=this.join('|');
    return (Temp.indexOf('|'+elt+'|')>-1)?true:false;
    }
     
    alert(tab.Appartient(87))
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Bonne idée Spafy,

    Mais il trouvera pas les valeurs aux extrêmes
    (et Temp est globale)

    Voici une proposition de correction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array.prototype.Appartient=function(elt){
      var Temp= '|' + this.join('|') + '|';
      return (Temp.indexOf('|' + elt + '|')>-1)?true:false;
    }
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    arf oui les extrémités ...
    alors une petite regExp
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Points : 107
    Points
    107
    Par défaut
    OK merci , je fini un problème de logique et ensuite je test ceci , je vous tient au parfum des que possible, mais je doute que ce soit dans la journée.

  7. #7
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Array.prototype.Appartient=function(elt){
      return ('|' + this.join('|') + '|').indexOf('|' + elt + '|')>-1;
    }
    11001.00101.10010.10000.00111

Discussions similaires

  1. [AC-2010] Verifier qu'une valeur appartient à une table
    Par Tytelle dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 13/04/2012, 15h52
  2. Réponses: 3
    Dernier message: 22/06/2010, 18h46
  3. Comment tester qu'une valeur est dans un tableau ?
    Par Pierrot92320 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/04/2009, 18h59
  4. Réponses: 2
    Dernier message: 17/08/2005, 14h40
  5. Réponses: 27
    Dernier message: 30/03/2005, 23h30

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