Maison >interface Web >js tutoriel >Comment trier un tableau d'objets JavaScript selon une valeur de propriété spécifique (par exemple, le prix) ?
Tri des objets par valeurs de propriété en JavaScript
Lors de la manipulation de tableaux d'objets, les trier par valeurs de propriété spécifiques peut être essentiel pour la gestion et la visualisation données. Explorons comment réaliser cette fonctionnalité de tri à l'aide de JavaScript.
Question :
Étant donné un tableau d'objets représentant les données de la maison, comment pouvons-nous créer une fonction pour les trier par leur propriété « prix » par ordre croissant ou décroissant ?
Objets Tableau :
Considérez le tableau de maisons suivant :
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": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" } ];
Fonctions de tri :
Pour trier le tableau de maisons, nous pouvons utiliser la méthode sort() intégrée. Cette méthode attend une fonction de comparaison comme argument. La fonction de comparaison prend deux éléments en entrée et renvoie un nombre négatif si le premier élément doit précéder le second, un nombre positif si le deuxième élément doit précéder le premier, ou zéro si les éléments sont considérés comme égaux.
Ordre Ascendant :
Pour trier les maisons par ordre croissant par prix, nous définissons une fonction de comparaison qui soustrait le prix du premier élément du prix du deuxième élément et compare la différence. Si la différence est négative, cela signifie que le prix du premier élément est inférieur au prix du second, et que le premier élément doit venir avant le second.
homes.sort(function(a, b) { return parseFloat(a.price) - parseFloat(b.price); });
Ou dans la syntaxe ES6 :
homes.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
Ordre décroissant :
Pour l'ordre décroissant, on peut inverser la fonction de comparaison en soustrayant le prix de le deuxième élément du prix du premier élément.
homes.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));
Résultat :
Après le tri, le tableau des maisons sera trié en fonction de l'ordre spécifié. Vous pouvez imprimer le tableau modifié pour vérifier le tri.
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!