131 votes

Tri des tableaux en javascript par valeur de clé d'objet

Comment trieriez-vous ce tableau avec ces objets par distance. Pour que vous ayez les objets triés de la plus petite distance à la plus grande distance ?

 Object { distance=3388, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=13564, duration="12 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=4046, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=11970, duration="17 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

251voto

Phil Points 48960

Utilisez la méthode Array de sort() , par exemple

 myArray.sort(function(a, b) {
    return a.distance - b.distance;
});

63voto

Surya Murugan Points 361

voici un exemple avec la réponse acceptée :

  a = [{name:"alex"},{name:"clex"},{name:"blex"}];

Pour l'ascendant :

 a.sort((a,b)=> (a.name > b.name ? 1 : -1))

sortie : [{name: "alex"}, {name: "blex"},{name: "clex"} ]

Pour la descente :

 a.sort((a,b)=> (a.name < b.name ? 1 : -1))

sortie : [{name: "clex"}, {name: "blex"}, {name: "alex"}]

25voto

Jon Tonti Points 53

Voici la même chose que la première réponse actuelle, mais dans un one-liner ES6 :

myArray.sort((a, b) => a.distance - b.distance);

7voto

Vinod Poorma Points 113

Cela a fonctionné pour moi

 var files=data.Contents;
          files = files.sort(function(a,b){
        return a.LastModified - b. LastModified;
      });

OU utilisez Lodash pour trier le tableau

 files = _.orderBy(files,'LastModified','asc');

5voto

Arthur van Acker Points 176

Pas spectaculaire différent des réponses déjà données, mais plus générique est :

 sortArrayOfObjects = (arr, key) => {
    return arr.sort((a, b) => {
        return a[key] - b[key];
    });
};

sortArrayOfObjects(yourArray, "distance");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X