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 :

Suppression de doublon dans un tableau d'objet javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    debutant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : debutant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut Suppression de doublon dans un tableau d'objet javascript
    Bonjour chers membres du forum,

    Je viens vers vous pour solliciter votre aide. En effet j'ai un array d'objet en javascript qui se présente comme suit :

    MonTableau
    [
    {id:"1", pays:"france"},
    {id:"2", pays:"espagne"},
    {id:"1", pays:"france"},
    {id:"2", pays:"espagne"},
    {id:"3", pays:"Italie"}
    ]

    j'aimerais supprimer les doublons des objets du tableau pour ainsi avoir un résultat comme suit:
    [
    {id:"1", pays:"france"},
    {id:"2", pays:"espagne"},
    {id:"3", pays:"Italie"}
    ]

    En vous remerciant d'avance de votre aide.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut,

    après quelques recherches, curieusement, je n'ai pas trouvé énormément de ressources pour savoir quel algorithme est le plus efficace. Une méthode simple (http://www.developpez.net/forums/d11...s-dindexation/) est de trier ton tableau avec Array.sort et de supprimer les éléments identiques qui se suivent. À toi de jouer
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    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
    // déclaration du tableau
    var monTableau = [
    {id:"1", pays:"france"}, 
    {id:"2", pays:"espagne"}, 
    {id:"1", pays:"france"}, 
    {id:"2", pays:"espagne"},
    {id:"2", pays:"espagne"},
    {id:"3", pays:"Italie"}
    ] ;
    // suppression des doublons
    var cache = {};
    monTableau = monTableau.filter(function(elem,index,array){
    	return cache[elem.id]?0:cache[elem.id]=1;
    });
    // affichage
    alert(JSON.stringify(monTableau));

  4. #4
    Membre régulier
    Homme Profil pro
    debutant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : debutant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    bonjour,

    Je vous remercie de m'avoir répondu aussi rapidement.

    @Watilin, pas besoin d'écrire un algorithme

    la méthode de Willpower marche parfaitement.

    Thanks !!

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Par contre la méthode "filter" n'apparait sur internet explorer qu'à la version 9, si tu veux te soucier des "vieux ie", tu peux ajouter ceci :

    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
    28
    29
    if (!Array.prototype.filter)  
    {  
      Array.prototype.filter = function(fun /*, thisp */)  
      {  
        "use strict";  
     
        if (this == null)  
          throw new TypeError();  
     
        var t = Object(this);  
        var len = t.length >>> 0;  
        if (typeof fun != "function")  
          throw new TypeError();  
     
        var res = [];  
        var thisp = arguments[1];  
        for (var i = 0; i < len; i++)  
        {  
          if (i in t)  
          {  
            var val = t[i]; // in case fun mutates this  
            if (fun.call(thisp, val, i, t))  
              res.push(val);  
          }  
        }  
     
        return res;  
      };  
    }
    source : https://developer.mozilla.org/en/Jav...#Compatibility

  6. #6
    Membre régulier
    Homme Profil pro
    debutant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : debutant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    Bonjour Willpower,

    Merci pour la précision, en fait je suis entrain de travailler sur google apps avec l’éditeur de script, donc c'est pas un soucis IE.

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

Discussions similaires

  1. Suppression des doublons dans un tableau de caractères
    Par benjamin_malaussene dans le forum Débuter
    Réponses: 20
    Dernier message: 03/11/2014, 13h12
  2. Suppression des doublons dans un tableau des chaines
    Par rimenis dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2013, 12h26
  3. [Tableaux] suppression des doublons dans un tableau
    Par hammag dans le forum Langage
    Réponses: 3
    Dernier message: 17/06/2009, 19h13
  4. Réponses: 2
    Dernier message: 16/06/2009, 10h44
  5. Suppression de doublons dans un tableau
    Par Didi34 dans le forum Langage
    Réponses: 6
    Dernier message: 03/12/2008, 10h35

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