Sortieren von Objekten nach Datumswert mithilfe eines Schlüssels
Um ein Array von Objekten effizient nach einem einzelnen Schlüssel mit einem Datumswert zu sortieren, z „updated_at“ können Sie die integrierte Array.sort-Methode verwenden. Betrachten Sie das folgende Array:
[ { "updated_at" : "2012-01-01T06:25:24Z", "foo" : "bar" }, { "updated_at" : "2012-01-09T11:25:13Z", "foo" : "bar" }, { "updated_at" : "2012-01-05T04:13:24Z", "foo" : "bar" } ]
Um diese Objekte in aufsteigender Reihenfolge nach „updated_at“ zu sortieren, können Sie die folgende benutzerdefinierte Komparatorfunktion mit der Sortiermethode verwenden:
var arr = [{ "updated_at": "2012-01-01T06:25:24Z", "foo": "bar" }, { "updated_at": "2012-01-09T11:25:13Z", "foo": "bar" }, { "updated_at": "2012-01-05T04:13:24Z", "foo": "bar" } ] arr.sort(function(a, b) { var keyA = new Date(a.updated_at), keyB = new Date(b.updated_at); if (keyA < keyB) return -1; if (keyA > keyB) return 1; return 0; }); console.log(arr);
In diesem Mit der Komparatorfunktion konvertieren wir die „updated_at“-Werte mithilfe des Date()-Konstruktors in Date-Objekte (keyA und keyB). Anschließend vergleichen wir diese Datumsobjekte mithilfe von Vergleichsoperatoren (<, > und ==). Wenn keyA vor keyB liegt, gibt die Funktion -1 zurück, was darauf hinweist, dass die Objekte im Array ausgetauscht werden müssen. Wenn keyA später als keyB ist, gibt die Funktion 1 zurück und stellt so sicher, dass keyA nach keyB im sortierten Array erscheint. Der Rückgabewert 0 gibt an, dass sich die Objekte an derselben Position befinden und kein Austausch erforderlich ist.
Diese Sortiertechnik sortiert die Objekte effizient nach ihren „updated_at“-Datumswerten in aufsteigender Reihenfolge. Sie können die Vergleichsoperatoren ändern, um unterschiedliche Sortierreihenfolgen zu erreichen, beispielsweise eine absteigende Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Objekte mithilfe eines Schlüssels nach Datumswert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!