Heim > Web-Frontend > js-Tutorial > Juerys Methode zur Lösung der chinesischen Tablesorter-Sortierung und der Zeichenrange_jquery

Juerys Methode zur Lösung der chinesischen Tablesorter-Sortierung und der Zeichenrange_jquery

WBOY
Freigeben: 2016-05-16 16:00:36
Original
1558 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt Juerys Methode zur Lösung der chinesischen Tablesorter-Sortierung und des Zeichenbereichs. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Tablesorter ist ein hervorragendes Plug-In zum Sortieren von Tabellen. Ich glaube, jeder hat es verwendet oder davon gehört, daher werde ich es hier nicht zu oft vorstellen. Weitere Informationen finden Sie im offiziellen Website: http://tablesorter.com/docs/ (die Demo ist relativ vollständig).

In mehreren mit Tablesorter entwickelten Projekten wurden zwei Arten von Sortierproblemen gefunden:

Das erste Problem besteht darin, dass chinesische Zeichen nicht sortiert werden können. Dies liegt daran, dass beim Sortieren der Zeichen die Zeichengröße anhand des Unicode-Werts verglichen wird. Der Code lautet wie folgt:

Js-Code

function sortText(a,b) {
  return ((a < b) &#63; -1 : ((a > b) &#63; 1 : 0));
};
function sortTextDesc(a,b) {
  return ((b < a) &#63; -1 : ((b > a) &#63; 1 : 0));
};
function sortText(a,b) {
  return ((a < b) &#63; -1 : ((a > b) &#63; 1 : 0));
};
function sortTextDesc(a,b) {
  return ((b < a) &#63; -1 : ((b > a) &#63; 1 : 0));
};
Nach dem Login kopieren

Das gewünschte Ergebnis ist eine Sortierung nach chinesischem Pinyin, sodass wir den Code in den folgenden Code ändern können:

Js-Code

function sortText(a,b) {
  return a.localeCompare(b);
};
function sortTextDesc(a,b) {
  return b.localeCompare(a);
};
function sortText(a,b) {
  return a.localeCompare(b);
};
function sortTextDesc(a,b) {
  return b.localeCompare(a);
};
Nach dem Login kopieren

Die Methode localeCompare ist eine Methode, die mit JS geliefert wird. Wie der Name schon sagt, vergleicht diese Methode jedoch die Größe von Zeichen basierend auf der aktuellen Region.

Das zweite Problem besteht darin, dass numerische Daten, die den Bereich überschreiten, nicht sortiert werden können. Dies liegt daran, dass der Datenwert während der numerischen Typkonvertierung verzerrt wird, zum Beispiel:

Js-Code

alert(parseFloat('9999999999999999'));  // 10000000000000000
alert(parseFloat('10000000000000001')); // 10000000000000000
alert(parseFloat('10000000000000004')); // 10000000000000004
alert(parseFloat('10000000000000005')); // 10000000000000004
alert(parseFloat('10000000000000006')); // 10000000000000006
alert(parseFloat('9999999999999999'));  // 10000000000000000
alert(parseFloat('10000000000000001')); // 10000000000000000
alert(parseFloat('10000000000000004')); // 10000000000000004
alert(parseFloat('10000000000000005')); // 10000000000000004
alert(parseFloat('10000000000000006')); // 10000000000000006
Nach dem Login kopieren

Eine solche Abweichung führt zu ungenauen Sortierergebnissen. Um dieses Problem zu vermeiden, sollten nicht die ursprünglichen Werte zum Vergleich verwendet werden. Stattdessen sollten die Gewichte für jeden numerischen Wert eingeführt werden Dann wird der neue, auf der Grundlage des Gewichts berechnete Wert mit dem ursprünglichen Wert zum Vergleich verwendet. Dieses Problem muss nur durch Ändern der formatFloat-Methode geändert werden.

Js-Code

this.formatFloat = function(s) {    
  // TODO    
  var i = parseFloat(s);    
  return (isNaN(i)) &#63; 0 : i;    
};
Nach dem Login kopieren

Ich hoffe, dass dieser Artikel für alle bei der jQuery-Programmierung hilfreich sein wird.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage