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