Eine Liste alphabetisch mit einem Modulus sortieren

8

Ich habe keine Probleme, eine Liste von Elementen zu finden und alphabetisch zu sortieren, aber ich habe Schwierigkeiten zu verstehen, wie man es mit einem Modulus macht.

### UPDATE ###

Hier ist der Code funktioniert 'mein Weg', aber ich mag die Wiederverwendung der unten angegebenen Antwort mehr, also habe ich diese Antwort akzeptiert.

%Vor%

Zum Beispiel. Angenommen, ich habe die folgende ungeordnete Liste:

%Vor%

Ich habe diese Liste so eingestellt, dass sie in 4 Spalten angezeigt wird, wobei jede li nach rechts verschoben ist. Optisch erschwert dies das Auffinden von Objekten in größeren Listen. Die Ausgabe, die ich brauche, ist diese:

%Vor%

Was ich suche, ist eine Funktion, die ich meinem Array von Listenelementen übergeben und mein Array alphabetisch sortiert mit einem Modul der Wahl zurückgeben kann; in diesem Fall 4.

Jede Hilfe wäre willkommen, da ich keine Dokumentation zu diesem Thema finden kann.

    
S16 10.09.2010, 01:53
quelle

4 Antworten

2
  1. Alphabetisch deine Liste. Dies ist in Ihrem Fall bereits geschehen, aber wenn nicht:

    %Vor%
  2. Speichern Sie den alphabetischen Index jedes Elements:

    %Vor%
  3. Sortieren Sie die alphabetische Liste zuerst nach Modul und dann nach Index:

    %Vor%
  4. Ersetzen Sie die Listenelemente durch Ihre sortierten Elemente:

    %Vor%

Hier ist das Ganze, alles zusammen:

%Vor%     
gilly3 10.09.2010, 19:13
quelle
0
%Vor%

Wenden Sie diese Funktion auf die bereits sortierte Liste an, und dann wird eine Liste von Strings in der (fast) gewünschten Reihenfolge zurückgegeben. Fügen Sie dann die Liste hinzu, die in der ungeordneten Liste im DOM zurückgegeben wurde.

Außerdem habe ich es mit nichts außer dieser Liste getestet. Also würde ich das tun, wenn ich du wäre. Von dem, was ich sehe, funktioniert es nur, wenn die Länge der Liste ein Vielfaches von n ist. Nicht so toll für eine Lösung, aber es ist spät für mich und ich kann mich nicht darum kümmern, etwas besseres zu finden.

BEARBEITEN: Das Problem wurde mit dem letzten Element behoben

    
Cristian Sanchez 10.09.2010 02:49
quelle
0

Sehen Sie, ob das funktioniert: Ссылка

%Vor%

Needs Verbesserungen, wahrscheinlich, aber ich bin mir nicht wirklich sicher, wie gut das überhaupt funktioniert.

    
Yi Jiang 10.09.2010 04:16
quelle
0

Hier gehen Sie. Der Code ist überraschend einfach, sobald Sie es herausfinden. Ich weiß, dass Sie jQuery verwenden, aber ich bin nicht vertraut genug, um seine Funktionen zu verwenden. Das ist einfach genug, dass es vielleicht nicht nötig ist.

%Vor%

Und hier ist der Test, um zu beweisen, dass es funktioniert (getestet in Firefox 3.6.9, IE 6, Chrome 1.0.154.36):

%Vor%

Noch eine Sache: Es könnte nützlich sein, die Elemente einfach an Ort und Stelle zu bewegen. Ich hatte fast ein Skript dafür, aber mein Skript lief rückwärts (als ob Floats zuerst von oben nach unten gingen). Wenn ich Zeit bekomme, arbeite ich daran und poste den Code.

P.S. Wer möchte mir Hinweise geben, warum ich 2 zur Breitenberechnung für IE6 hinzufügen musste? Warte ... es sind die Grenzen des Div, nicht wahr?

    
ErikE 10.09.2010 06:41
quelle

Tags und Links