Maison >interface Web >js tutoriel >js utilise la méthode Array.prototype.sort() pour trier les compétences du tableau object_javascript

js utilise la méthode Array.prototype.sort() pour trier les compétences du tableau object_javascript

WBOY
WBOYoriginal
2016-05-16 16:17:321360parcourir

L'exemple de cet article décrit comment js utilise Array.prototype.sort() pour trier les objets du tableau. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Lorsque nous parlons de tri des objets de tableau, jetons d'abord un bref coup d'œil à Array.prototype.sort(). La méthode de tri accepte un paramètre - Fonction. La fonction fournira deux paramètres, qui sont deux éléments à comparer. Si l'élément est de type String, il sera comparé via le code Unicode. S'il est de type Number, la taille de. la valeur sera comparée. Si la fonction de comparaison renvoie 1, les deux éléments échangent leurs positions 0 et -1 n'échangent pas leurs positions. Regardons d'abord un exemple :

Copier le code Le code est le suivant :
var arr = [3, 5, 2, 1] ;
// Trier du petit au grand
arr.sort(fonction (a, b) {
Retourner a > 1 : -1;
});
// Résultat obtenu : [1, 2, 3, 5]

Revenons donc à notre sujet, si nous trions un objet tableau, comment devons-nous l'écrire ? En fait, le principe est le même que ci-dessus, comme par exemple :

Copier le code Le code est le suivant :
var arr = [
{ a : 2, b : 3.2},
{ a : 3, b : 1.2},
{ a : 4, b : 2.2},
{ a : 6, b : 1.2},
{ a : 5, b : 3.2>
]
/// Trier par attribut b du petit au grand
arr.sort(fonction(x, y){
Retourner x.b > y.b ? });
x et y sont un élément de arr, c'est-à-dire un objet, il suffit donc de comparer directement les propriétés des deux objets.
Dans l'exemple ci-dessus, il y a des doublons dans le plus petit élément. Si l'exigence est la suivante : triez d'abord par l'attribut b de petit à grand, et s'il y a des doublons dans le plus petit élément, triez ensuite par l'attribut a Comment. dois-je l'écrire ?

Lors du tri, triez d'abord par l'attribut b. Si x.b est supérieur à y.b, déplacez x à droite de y. Si x.b est égal à y.b, comparez x.a et y.a, donc le code est le suivant :

Copier le code Le code est le suivant :
arr.sort(function (x, y) {
Si (x.b > y.b) {
Retour 1 ;
} sinon si (x.b === y.b) {
          return x.a > y.a 1 : -1 ;
} sinon si (x.b < y.b) {
         return -1;
>
})
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

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