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
737 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!

source:php.cn
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