ich bin scheinbar auf ein seltenes Problem gestoßen, da ich dazu bisher nichts gefunden habe.
Und zwar möchte ich ein komplexes Array je nach Useraktion nach anderen Kriterien sortieren.
Ich weiß, prinzipiell geht es so, dass man eine eigene Vergleichsmethode schreibt und diese der array.sort() übergibt. Quasi:
- Code: Alles auswählen
function sort_by_abc(){...}
myarray = ...;
myarray.sort(sort_by_abc);
So, bei mir hängt das abc allerdings von einer Variablen ab, die da heißt: sort_type. Da steht z. B. drin "title", "date", "type" etc.
Jetzt müsste ich die Funktionsreferenz in .sort() (das ist doch eine, oder? 100% sicher bin ich mir mit den Begrifflichkeiten hier leider noch nicht) dynamisch zusammenbauen. In etwa so:
- Code: Alles auswählen
myarray.sort("sort_by_" + sort_type);
Geht natürlich nicht, weil das dann der falsche Typ ist (String statt Funkt.referenz). Ich hab auch schon mit der window[funktionsname]()-Methode rumprobiert. Ich vermute aber, dass sich damit nur reine Funktionen aufrufen lassen, aber keine Referenzen.
Weiß jemand, wie man sowas bewerkstelligen kann?
Gruß,
Andy
EDIT: Okay, hat sich erledigt. myarray.sort(window[functrefname]); funktioniert doch. Ich benutze einen HTML-Editor, der Dateien automatisch beim Speichern auf einen FTP-Server lädt. Scheinbar hat er das eine Mal nur zu lange gebraucht oder ich war zu schnell mit der Überprüfung. Entschuldigt vielmals die Störung!