Maison >interface Web >js tutoriel >Comment trier des objets par clé de date à l'aide de Array.sort() ?

Comment trier des objets par clé de date à l'aide de Array.sort() ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 21:53:02331parcourir

How to Sort Objects by Date Key Using Array.sort()?

Tri des objets par clé de date à l'aide de Array.sort

Trier un tableau d'objets par une clé spécifique est une tâche courante en JavaScript. Cela peut être particulièrement utile lorsqu'il s'agit d'horodatages tels que « updated_at ».

Pour ce faire, nous pouvons utiliser la méthode intégrée Array.sort(). Cette méthode prend comme argument une fonction de comparaison, qui détermine l'ordre des éléments dans le tableau.

Par exemple, considérons un tableau d'objets avec une clé 'updated_at' :

[
    {
        "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 en fonction de la clé 'updated_at', nous pouvons utiliser la fonction de comparaison suivante :

function compare(a, b) {
  var keyA = new Date(a.updated_at),
    keyB = new Date(b.updated_at);
  // Compare the 2 dates
  if (keyA < keyB) return -1;
  if (keyA > keyB) return 1;
  return 0;
}

Cette fonction compare les valeurs 'updated_at' de deux objets et renvoie une valeur négative, positive ou valeur nulle selon que le premier objet est plus tôt, plus tard ou en même temps que le deuxième objet.

En passant cette fonction de comparaison à la méthode Array.sort(), nous pouvons trier le tableau d'objets dans ordre croissant de 'updated_at' :

arr.sort(compare);

Le tableau trié résultant aura les objets classés de la plus ancienne à la dernière valeur 'updated_at'.

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