Numerisches Sortieren von Arrays nach Objekteigenschaftenwert

Lesezeit: 2 Minuten

Benutzer-Avatar
Harry

Wie würden Sie dieses Array mit diesen Objekten sortieren nach distancesodass Sie die Objekte vom kleinsten Abstand zum größten Abstand sortiert haben?

[
  { distance: 3388, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 13564, duration: "12 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 4046, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 11970, duration: "17 mins", from: "Lenchen Ave, Centurion 0046, South Africa" }
]

  • Das Muster für die numerische Sortierung nach Eigenschaften ist myarray.sort((a, b) => a.distance - b.distance). Um lexikografisch zu sortieren, verwenden Sie a.from.localeCompare(b.from). Um absteigend statt aufsteigend zu sortieren, negieren Sie den Rückgabewert (z b.distance - a.distance anstatt a.distance - b.distance). Numerisch sortieren Saitenoptional verwenden Number. Um nach mehreren Eigenschaften zu sortieren, verketten Sie andere Sortierungen mit ||z.B b.someNumber - a.someNumber || a.someString.localeCompare(b.someString).

    – Sebastian Simon

    10. April um 11:49 Uhr


Hier ist ein Beispiel mit der akzeptierten Antwort:

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

Zum Aufsteigen:

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

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

Zum Absteigen:

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

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

Wenn Sie Namen in Klein- und Großbuchstaben haben, verwenden Sie toLowerCase() Funktion.
Hier ist ein Beispiel:

data = [{name:"foo"},{name:"Bar"},{name:"Foo"}];


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

Benutzer-Avatar
Deepak Kumar

Schieben Sie alle Objekte in ein Array myArray und wenden Sie dann die Sortierung damit an.

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

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');

  • Wo haben LastModified komme aus? Die Ziel-Eigenschaft ist distance.

    – Sebastian Simon

    10. April um 11:46 Uhr

  • “LastModified” ist der Schlüssel im Objekt. In meinem Fall ist es Datum

    – Vinod Poorma

    30. April um 9:08 Uhr

1010390cookie-checkNumerisches Sortieren von Arrays nach Objekteigenschaftenwert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy