webentwicklung-frage-antwort-db.com.de

Arrays in Javascript nach Objektschlüsselwert sortieren

Wie würden Sie dieses Array mit diesen Objekten nach Entfernung sortieren? Damit Sie die Objekte von der kleinsten bis zur größten Entfernung sortiert haben?

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...}
28
Harry

Verwenden Sie Arrays sort()-Methode , z

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

Das Gleiche wie die aktuelle Top-Antwort, jedoch in einem ES6-Einzeiler:

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

5
Jon Tonti

Wenn der Schlüsselwert vom Typ string ist, können Sie die Methode localeCompare wie folgt verwenden:

users.sort((a, b) => a.name.localeCompare(b.name));
2
HMagdy

Nicht spektakulär anders als die Antworten, aber allgemeiner ist: 

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

sortArrayOfObjects(yourArray, "distance");
1

Das hat bei mir funktioniert

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

ODER verwenden Sie Lodash, um das Array zu sortieren

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