Maison > interface Web > js tutoriel > Comment puis-je trier un tableau d'objets par date et par ordre décroissant en JavaScript ?

Comment puis-je trier un tableau d'objets par date et par ordre décroissant en JavaScript ?

Susan Sarandon
Libérer: 2024-12-27 16:04:10
original
809 Les gens l'ont consulté

How Can I Sort an Array of Objects by Date in Descending Order in JavaScript?

Tri des tableaux d'objets par propriété de date

Problème : Vous disposez d'un tableau d'objets avec une propriété de date et souhaitez pour le trier par ordre décroissant en fonction de la date la plus proche du présent.

Solution :

Utilisation d'un comparateur personnalisé :

Une approche consiste à utiliser le tri intégré ( ) avec une fonction de comparaison personnalisée. La fonction de comparaison prend deux objets comme arguments, a et b, et renvoie une valeur négative, positive ou nulle si a doit venir avant b, après b ou s'ils doivent rester dans la même position, respectivement.

Pour trier par date, la fonction de comparaison convertirait les chaînes de date en dates JavaScript et les soustrait :

array.sort(function(a, b) {
  return new Date(b.date) - new Date(a.date);
});
Copier après la connexion

Générique Solution :

Une solution plus générique consiste à définir une fonction sortBy() personnalisée qui effectue une transformation schwartzienne sur le tableau. Cette fonction peut être utilisée pour trier par n'importe quelle propriété, pas seulement par la date.

(function() {
  if (!Array.prototype.sortBy) Array.prototype.sortBy = sb;

  function sb(f) {
    // ... implementation
  }
})();
Copier après la connexion

À l'aide de cette fonction personnalisée, vous pouvez trier par la propriété de date comme suit :

array.sortBy(function(o) { return o.date });
Copier après la connexion

Gestion des comparaisons de dates complexes :

Si votre propriété de date n'est pas directement comparable, vous pouvez en extraire une valeur comparable, telle qu'une date JavaScript. object :

array.sortBy(function(o) { return new Date(o.date) });
Copier après la connexion

Tri selon plusieurs critères :

Vous pouvez également utiliser la fonction sortBy() pour trier selon plusieurs critères. Renvoyez simplement un tableau de valeurs de la fonction de comparaison :

// Sort by date, then score (reversed), then name
array.sortBy(function(o) { return [o.date, -o.score, o.name] });
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal