Tri de tableaux d'objets par plusieurs champs
Dans la question d'origine, le tri d'un tableau d'objets par un seul champ a été résolu efficacement. Cependant, comment pouvons-nous appliquer un tri sur plusieurs champs ?
Pour trier un tableau d'objets par plusieurs champs, nous pouvons utiliser une approche de tri en chaîne. Cela implique de trier selon le premier champ puis, si les valeurs sont égales, de continuer à trier selon le deuxième champ. Si nécessaire, ce processus peut être répété pour plus de champs.
Considérons l'exemple suivant où nous souhaitons trier un tableau de maisons par ville (ascendant) puis par 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"} ];
Pour trier ce tableau, nous pouvons utiliser le code JavaScript suivant :
homes.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
Voici comment ce code fonctionne :
En appliquant cette approche de tri à plusieurs champs, nous pouvons facilement trier des tableaux complexes d'objets dans l'ordre souhaité.
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!