Maison > interface Web > js tutoriel > Comment trier un tableau multi-champs en JavaScript ?

Comment trier un tableau multi-champs en JavaScript ?

Patricia Arquette
Libérer: 2024-12-24 02:18:10
original
528 Les gens l'ont consulté

How to Sort a Multi-Field Array in JavaScript?

Tri de tableaux multi-champs

Dans une question précédente, nous avons exploré le tri de tableaux basé sur un seul champ. Cependant, les scénarios du monde réel nécessitent souvent un tri selon plusieurs critères. Cet article montre comment adapter cette approche pour le tri multi-champs.

Exemple spécifique : Ville et Prix

Considérez le tableau Homes suivant où nous devons trier par ville (croissant) puis prix (décroissant) :

var homes = [
    { "h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500" },
    { "h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250" },
    { "h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699" },
    { "h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500" }
];
Copier après la connexion

Tri multi-champs Approche

Pour trier en fonction de plusieurs champs, nous pouvons utiliser une approche de tri en chaîne qui consiste à comparer les valeurs des champs sélectionnés, un à la fois, jusqu'à trouver un différence.

Mise en œuvre

data.sort(function (a, b) {
    return a.city.localeCompare(b.city) || b.price - a.price;
});
Copier après la connexion

Explication

  • La méthode localeCompare est utilisée pour comparer les valeurs de la ville .
  • Si les valeurs de la ville sont égales, nous soustrayons la valeur du prix de b de a pour trier les prix dans ordre décroissant.
  • Le tableau résultant est trié par ville (ascendant) puis par prix (décroissant).

Sortie

[
  {
    "h_id": "3",
    "city": "Dallas",
    "state": "TX",
    "zip": "75201",
    "price": "162500"
  },
  {
    "h_id": "6",
    "city": "Dallas",
    "state": "TX",
    "zip": "75000",
    "price": "556699"
  },
  {
    "h_id": "4",
    "city": "Bevery Hills",
    "state": "CA",
    "zip": "90210",
    "price": "319250"
  },
  {
    "h_id": "5",
    "city": "New York",
    "state": "NY",
    "zip": "00010",
    "price": "962500"
  }
]
Copier après la connexion

Cette approche fournit une solution flexible pour trier les tableaux sur plusieurs champs. Il peut être facilement modifié pour s'adapter à n'importe quel nombre de critères de tri, ce qui le rend adapté à une grande variété de scénarios de manipulation de données.

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