Ich arbeite an einer Livescores-Anwendung, bei der Tabellenzeilen zum Anzeigen der Datensätze verwendet werden. Die Sortierung erfolgt nach dem tr-Klassennamen, dessen Wert durch dateTime + countryId + LeagueId + matchId erstellt wurde. Die Klasse wird also ungefähr zu 1349565600312117160466446000000000000000 (ich füge am Ende einige Nullen hinzu, damit alle Zahlen dieselbe Länge haben).

Das Problem (mit oder ohne Nullen) ist, dass die Zahl zu groß ist, um zum Sortieren mit Javascript verwendet zu werden. Ich habe mich also gefragt, ob es einen Weg gibt, das zu erreichen, was ich will.

0
mikaint 7 Okt. 2012 im 03:43

3 Antworten

Beste Antwort

Da alle Zahlen gleich lang sind, verwenden Sie die Techniken zum Sortieren von Zeichenfolgen. Diese Zahl wird in Zeichen konvertiert und nach dem ASCII-Wert sortiert.

$(function(){    
    var strings = [];
    strings.push(your_value); // your_value like 1349565600312117160466446000000000000000
    strings.sort();
}); 

Fügen Sie so viel Wert wie nötig in das String-Array ein und das strings.sort() sortiert sie!

0
Kaidul 7 Okt. 2012 im 00:10

Sie könnten 2 Funktionen haben:

  1. eine, um diese Nummer in einzelne Elemente aufzuteilen, genau wie Sie es erwähnt haben
  2. eine, um sie neu zu erstellen.

Rufen Sie beim Laden der Seite die Funktion auf, die alle Elemente im DOM durchläuft, füllen Sie ein Array, sortieren Sie es dort und wiederholen Sie das Array, um die neue DOM-Reihenfolge zu erstellen

0
Alex Peta 6 Okt. 2012 im 23:51

Wenn alle Zahlen die gleiche Länge haben, können Sie sie einfach als Zeichenfolgen sortieren.

Beachten Sie, dass Sie möglicherweise auf Probleme stoßen, wenn Ihre Felder nicht alle gleich lang sind (z. B. zweistellige oder einstellige Länder-IDs). In diesem Fall möchten Sie möglicherweise alle Ihre Werte auf Null setzen, bevor sie in den Klassennamen gepackt werden, oder die Werte einfach mit einem nicht numerischen Zeichen verbinden und Arrays mit geteilten Zahlen sortieren.

0
nneonneo 6 Okt. 2012 im 23:44