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

jQuery Discussion :

Fonction Jquery inArray qui déconne


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut Fonction Jquery inArray qui déconne
    Bonjour,
    j'ai un problème que je ne comprends pas j'ai un tableau qui contient des nombres(nb_parcours).
    J'ai un second tableau(markers) qui contient des données(environ 4000 lignes en moyenne).

    Mon but c'est de boucler sur le second tableau(markers) et de voir si le nombre dans clé p est contenu dans le tableau nb_parcours.

    Pourtant quand je boucle dessus, ça me marque que toute les données sont bonne alors que c'est impossible, car pas présente dans le tableau nb_parcours.
    Il devrait y avoir d'afficher seulement la ligne avec le point rouge, car les autres nombre ne sont pas dans le tableau nb_parcours.

    Images:
    Nom : inarray.jpg
Affichages : 299
Taille : 4,6 Ko

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	$.each(markers, function(key, value)
    	{
    		if($.inArray(value.p, nb_parcours))
    			{
    console.log('ok ' + value.p + ' ' + nb_parcours);
    			}
    		else
    			{
    console.log(value.p + ' ' + nb_parcours);
    			}
    	});
    Quelqu'un voit mon erreur ? car moi non.

    Je pourrais toujours faire une seconde boucle pour comparer les nombre, mais je trouve ça plus simple avec $.inArray et surtout moins lourd^^

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    on peut avoir l'array ?

    Attention inArray est similaire à indexOf et retourne donc -1 ou l'indexe ... pas un booléen

    il faut donc tester
    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 !

  3. #3
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut
    Dans les log, le problème c'est que si je fais juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    console.log($.inArray(value.p, nb_parcours));
    Ca donne toujours -1, alors que normalement la seule ligne ou ça devrait trouvé quelque chose, c'est la ligne ou il y a le point rouge, car c'est les deux même nombre alors que le reste non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var nb_parcours = [2];
     
    var markers = {"1":{"id":"267094","t":"a","p":0,"num":1,"date":"Jeudi 17 Novembre 2016 - 00:00:11","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "2":{"id":"267095","t":"a","p":0,"num":2,"date":"Jeudi 17 Novembre 2016 - 00:00:31","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "3":{"id":"267096","t":"a","p":1,"num":3,"date":"Jeudi 17 Novembre 2016 - 00:00:51","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "433":{"id":"267526","t":"a","p":2,"num":433,"date":"Jeudi 17 Novembre 2016 - 02:24:04","lat":"44.662743333333","long":"4.99477","spd":"0","alt":"207.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24}}
    C'est un extrait, car la il y a plus de 3000 lignes

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonjour,
    Ca donne toujours -1, alors que normalement la seule ligne...
    !!!...

    Utilise le résultat correctement et tu auras le bon résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($.inArray(value.p, nb_parcours) > - 1) {
        console.log('ok ' + value.p + ' ' + nb_parcours);
    } 
    else {
        console.log(value.p + ' ' + nb_parcours);
    }
    Attention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( - 1) {
        alert('ok')
    }

  5. #5
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut
    C'est toujours pareil! Ca ne change rien du tout. Je ne vois pas ou est le problème.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    dans ton code, mais surement ailleurs, car avec tes données, un test rapide donne le bon résultat

    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
    var nb_parcours = [2];
     
    var markers = {"1":{"id":"267094","t":"a","p":0,"num":1,"date":"Jeudi 17 Novembre 2016 - 00:00:11","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "2":{"id":"267095","t":"a","p":0,"num":2,"date":"Jeudi 17 Novembre 2016 - 00:00:31","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "3":{"id":"267096","t":"a","p":1,"num":3,"date":"Jeudi 17 Novembre 2016 - 00:00:51","lat":"44.662748333333","long":"4.9946933333333","spd":"0","alt":"199.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24},
    "433":{"id":"267526","t":"a","p":2,"num":433,"date":"Jeudi 17 Novembre 2016 - 02:24:04","lat":"44.662743333333","long":"4.99477","spd":"0","alt":"207.6","img":"Marker-arret.png","w":24,"h":24,"aw":13,"ah":24}}
     
    $.each(markers, function (key, value) {
        console.log('-> ' + value.p);
        if ($.inArray(value.p, nb_parcours)>-1) {
            console.log('ok ' + value.p + ' ' + nb_parcours);
        } 
        else {
            console.log(value.p + ' ' + nb_parcours);
        }
    });
    résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -> 0
    -> 1
    -> 2
    ok 2 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/03/2015, 12h43
  2. JPGraph Fonction Stroke qui déconne
    Par DavidKLS dans le forum Langages serveur
    Réponses: 0
    Dernier message: 20/06/2012, 09h15
  3. [VB6] Fonction ou API qui retourne l'utilisateur windows courant
    Par nnj dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/05/2006, 18h31
  4. [Access] Champ Date/Heure qui déconne
    Par portu dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/05/2006, 17h42
  5. glDisable(GL_LIGHTING) pour un plan 2D qui déconne
    Par Coelacanthe dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/12/2005, 22h03

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