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 :

Récupérer paramétre finissant par xxx dans un objet


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut Récupérer paramétre finissant par xxx dans un objet
    Bonjour à tous,

    j'ai un léger probléme et je pense que la solution doit exister mais je ne trouve pas, j'ai un objet de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var listErreur = {4-L-1: "0", 3-L-2: "1"};
    et je voudrais pouvoir modifier le paramètre se terminant par L-2 mais je ne sais pas comment je peux le retrouver de façon dynamique.
    Dans le dom, il y'a bien des trucs du genre $="L-2" mais pour récupérer dans un objet non DOM je ne vois pas comment faire.

    Si quelqu'un a un idée.

    Par avance, merci

  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
    Avec un each et une reg ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var listErreur = {"4-L-1": "0", "3-L-2": "1"};
     
     
    function extractReg(json,myreg){
        extract={};
         $.each(json,function(idx,val){
            if(idx.match(myreg)){extract[idx]=val;}
        })
        return extract;
    }
     
    console.log(extractReg(listErreur,/L\-2$/))
    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 éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut
    Arghhh

    je pensais qu'il y'avait plus simple que cela, mais tant pis, je vais utiliser ta fonction.
    Je teste tout ça.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bientôt on pourra écrire cela en ES6 natif, pour l'instant, dans Chrome 43 ou 44b, il faut toujours traceur.js :

    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
    22
    23
    24
    25
    26
    27
    <script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
    <script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
    <script type="module">
     
        let
            mapErreur = new Map( [
                [ "4-L-1", "0" ],
                [ "3-L-2", "1" ],
                [ "5-L-3", "2" ],
                [ "1-L-2", "3" ],
                [ "7-L-1", "4" ],
                [ "9-L-2", "5" ],
                [ "6-L-1", "6" ],
                [ "8-L-2", "7" ]
            ] ),
            mapResult = new Map();
     
        for ( let[ key, value ] of mapErreur ){
            if ( key.match( /L\-2$/ ) ){
                mapResult.set( key, value );
            }
        }
     
        console.log( mapResult );
        // Map { "3-L-2" => "1", "1-L-2" => "3", "9-L-2" => "5", "8-L-2" => "7" }
     
    </script>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    au passage cette écriture est non conforme {4-L-1: "0", 3-L-2: "1"};, il te faut IMPERATIVEMENT mettre des quottes, autour de la clé, pour que la soustraction ne se fasse pas.

  6. #6
    Membre éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut
    Hello world

    @NoSmoking : Effetivemment, il y'a des quotes dans l'objet (j'ai pris l'objet du deboggeur car dans mon code tout est créé en dynamique).

    @danielhagnoul : Pour l'instant je ne vois pas l'avantage d'utiliser des maps (mais je vais me documenter sur le sujet)

    Finalement j'ai fais cette fonction (sans Regex car ce n'est pas utile je pense => A moins qu'il y'ai de grandes différences entre Regex et indexOf pour vérifier l'existence d'une chaine dans une autre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function cherIdxObjet(objet, index){
    	for(var idx in objet){
    		if(idx.indexOf(index)!=-1){
    			return idx;
    		}
    	}
    	return index;
    }
     
    tabErreur[cherIdxObjet(tabErreur, idxCl)]=element.erreur;
    Merci à tous pour vos réponses

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/07/2009, 09h37
  2. Réponses: 7
    Dernier message: 13/01/2009, 17h11
  3. Récupérer paramètres passés par POST?
    Par Philippe PONS dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2007, 12h48
  4. Comment définir une couleur par ligne dans un objet uicontrol de type Text
    Par VinceDA dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/05/2007, 12h13
  5. Réponses: 2
    Dernier message: 22/02/2006, 14h33

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