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

Comment trier un tableau multi-champs en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-24 02:18:10529parcourir

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" }
];

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

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

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!

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