Maison  >  Article  >  interface Web  >  Comment trier des objets par valeur de date à l'aide d'une clé ?

Comment trier des objets par valeur de date à l'aide d'une clé ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 21:41:30751parcourir

How to Sort Objects by Date Value Using a Key?

Tri des objets par valeur de date à l'aide d'une clé

Pour trier efficacement un tableau d'objets par une seule clé avec une valeur de date, telle que 'updated_at', vous pouvez utiliser la méthode Array.sort intégrée. Considérons le tableau suivant :

[
    {
        "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"
    }
]

Pour trier ces objets par 'updated_at' dans l'ordre croissant, vous pouvez utiliser la fonction de comparaison personnalisée suivante avec la méthode de tri :

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

Dans ce fonction de comparaison, nous convertissons les valeurs 'updated_at' en objets Date (keyA et keyB) à l'aide du constructeur Date(). Nous comparons ensuite ces objets Date à l’aide d’opérateurs de comparaison (<, > et ==). Si keyA est antérieur à keyB, la fonction renvoie -1, indiquant la nécessité d'échanger les objets du tableau. Si keyA est postérieur à keyB, la fonction renvoie 1, garantissant que keyA apparaît après keyB dans le tableau trié. La valeur de retour de 0 indique que les objets sont à la même position et qu'aucun échange n'est requis.

Cette technique de tri classe efficacement les objets en fonction de leurs valeurs de date 'updated_at' dans l'ordre croissant. Vous pouvez modifier les opérateurs de comparaison pour obtenir différents ordres de tri, comme l'ordre décroissant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn