Récemment, le problème du tri JS est que le tri de la base de données consomme des ressources trop consommées. Dans le client, sauf JS, c'est comme. Essence Essence Après mon test, le tri de méthode construit par JS est très efficace
Nous savons que la fonction de tri est fournie par défaut dans JS, mais cette fonction est organisée en fonction des codes ASCII du contenu du tableau. Il existe une fonction Multi_Sort en PHP pour l'appeler, mais il ne semble pas y avoir de fonction de ce type dans JS, mais cela n'a pas d'importance, car la fonction de tri de JS fournit également des paramètres qui peuvent définir la fonction de comparaison pour les tableaux à deux dimensions.
1. Trier par valeur numérique
En supposant le tableau suivant
Copier le code du code comme suit:
var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
Que faisons-nous si nous voulons trier la première colonne de chaque sous-réseau?
Copier le code du code comme suit:
Arr.sort (fonction (x, y) {
Return x [0] y [0];
});
Quel est le rôle de la fonction de comparaison ici? En fait, le tableau est reproduit à x, y à son tour, par exemple, attribuez d'abord Arr [0] à x, arr [1] à y, puis utilisez x [0] y [0]. , si la valeur de retour, si vous retournez, revenez au retour. y, puis les deux premiers sont triés. Il s'agit d'une fonction de comparaison de la séquence par défaut. est trié dans la première colonne. Le tri ici modifiera la structure du tableau de l'ARR, donc le tri ARR est un tableau qui est promu selon la première colonne.
2. Triez par chaîne
Si vous êtes trié par une chaîne, nous pouvons utiliser la méthode LocalCompare fournie par JS,
LocalCompare: comparez deux chaînes dans un ordre particulier.
Les règles d'utilisation de la méthode localecompare sont stringObject.LocaleCompare (Target). Si StringObject est supérieur à la cible, la méthode renvoie un nombre supérieur à 0. Si les deux chaînes sont égales ou qu'il n'y a pas de différence selon les règles de tri locales, cette méthode renvoie 0. L'appareil est comparé aux règles locales. Système d'exploitation.
Par exemple
Copier le code du code comme suit:
var arr = [[«dans», «country»], [«ah», «», [«oh», »,»];
Arr.sort (fonction (x, y) {
Return x [0] .LocaleCompare (y [0]);
});
En conséquence, il sera trié dans le pinyin de la première colonne des caractères chinois. de cordes est triée, y compris la ligne mixte chinoise et sino-britannique. Quant à l'ordre de commande, la méthode est la même que celle ci-dessus, et la méthode est modifiée pour retourner y [0] .LocaleCompare (x [0]);
De cette façon, le problème du tri est réalisé, et il existe encore de nombreux endroits pour les tableaux JS à deux dimensions. J'espère aider certaines personnes
Copier le code du code comme suit:
Fonction tblsort (s) {
pour (r = 0; r <right_len; r ++) {
arrs [r] = []
pour (c = 0; c <cel_len; c ++) {
Arrrs [r] [c] = {} // Créer un autre objet dans le tableau à deux dimensions;
Arrs [r] [c] .html = table.Rows [r] .cells [c] .innerhtml // mettez le tableau de HTML dans un tableau associé et affiché sur la page après tri;
var text = table.Rows [r] .Cells [c] .InnerText // Obtenez le contenu texte du formulaire pour les jugements suivants;
// la détection qui peut sembler négative si les données ne sont pas normales, se classant à la fin;
if (text == '-') {{
arrs [r] [c] .text = '-1';
} else if (text == 'reintegle') {{
arrs [r] [c] .text = '- 2';
} else if (text == 'no baidu snapshot' || text == 'pas de données de classement') {
arrs [r] [c] .text = '-3'
} else if (text == '') {
arrs [r] [c] .text = '-4'
} Autre {
arrs [r] [c] .text = table.Rows [r] .Cells [c] .InnerText // Mettez le contenu texte de la table dans un tableau associé. Pour le tri ci-dessous pour le tri.
}
}
}
// alerte (arrs [0] [0] ['texte'])
// Le jugement de Reve est actuellement trié ou désédoux;
if (reve) {
Arrs.sort (fonction (x, y) {
Return parsefloat (y [s] ['text']) -Parsefloat (x [s] ['text'])
});
Reve = 0
} Autre {
Arrs.sort (fonction (x, y) {
Return parsefloat (x [s] ['text']) -Parsefloat (y [s] ['text']) //
})
Reve = 1
}
// Mette le contenu HTML ramené dans la forme
pour (r = 0; r <right_len; r ++) {
pour (c = 0; c <cel_len; c ++) {
table.Rows [r] .Cells [c] .innerhtml = arrs [r] [c] ['html']]
}
}
}
// Le tri de table se termine