Bonjour,

le problème du jour est le suivant :) :
ma variable est un tableau json qui contient uniquement des valeurs (pas de clé) du type

var montableau = "1""2""3""4"]

Je recherche la façon la plus efficace de dire à jQuery en parcourant la page HTML
"Hey jQuery, si cette valeur est dans le tableau json alors fais ceci !" :)

En PHP, j'aurai naturellement utilisé la fonction inArray() pour tester si une valeur donnée est bien dans le tableau comme suit :

if inArray("1", $montableau) {
//fais ceci
}

Il existe une fonction jQuery inarray() mais je ne sais pas si son fonctionnement est identique...

Avez-vous une idée de la meilleure façon de faire pour tester si une valeur donnée est présente dans un tableau en jQuery ?

Merci par avance aux magiciens de jQuery ^^

5 réponses


Natà
Réponse acceptée

Salut,
Il existe une fonction en jQuery qui s'appelle inArray mais qui contrairement à la fonction php ne retourne pas true ou false mais l'index de l'item testé dans le tableau ou -1 si il ne trouve rien. Je sais pas si c'est clair mais voilà :

$(function(){
    var array = 'un','deux',3,4];
    if($.inArray('un',array)!=-1){
        alert('ok');
    }
    else{
        alert('fail');
    }
});

Attention par contre, si tu veux tester des chiffres il ne faut pas mettre de guillemets sinon il croit que c'est une chaine et va retourner -1.

Pense à séparer chaque item de ton tableau par des virgules aussi. :)

JPH
Auteur

Si c'est parfaitement clair même ! J'avais du mal à capter le fonctionnement.
Y a plus k'a :)
Je teste tout ça et je te fais mon retour !

Merci !!! 2 fois que tu me sauves la life en 2 jours ^^

Ouais je suis fond, je "farm" le badge "HelpMan !". :D

JPH
Auteur

Lol J'te décerne ma palme pour le moment^^
Bien que je galère avec ce inArray jQuery, qui ne doit tolérer qu'une forme d'array avec une syntaxe bien stricte. Parce qu'avec mon array qui vient de php, ca marche pô :) la fonction me ressort un "-1" quand ca ne devrait pas :)

sinon la fonction marche très bien, je l'ai testée, mais avec ma variable, Elle veut rien savoir ^^

Je précise que mon array ne contient QUE des chiffres et que j'ai fait en sorte de dégager les guillemets mais bon ... y a un truc que jQuery ne doit pas aimer dans mon array :)

JPH
Auteur

Bon quand on est un bourin faut l'admettre .... J'avais laissé trainé des guillement "autour" de mon array ... :)
Tout est ok ! La fonction fonctionne ^^