2012-04-09 22 views
4

Jetzt habe ich eine Liste von Streams, und ich möchte Streams mit der Zeichenfolge "online" an die Vorderseite des Arrays, aber ich möchte dies sehr schnell tun. Ich weiß, dass ich den Array-Wert einfach nach Wert duplizieren und die Online-Werte nach vorne schieben kann, aber ich habe mich gefragt, ob es einen besseren Weg dafür gibt.Array nach String sortieren

Dies ist nur ein Beispielcode, aber es ist ähnlich dem, was ich habe. Wie kann ich mein Array einfach neu anordnen, um online nach vorne zu schieben? Ich bin offen für JavaScript oder jQuery Antworten.

var streams = new Array('online', 'offline', 'online', 'offline', 'online', 'offline', 'offline', 'online'); 

Antwort

11
streams.sort() 

Würden Sie ["offline", "offline", "offline", "offline", "online", "online", "online", "online"]

geben, da f vor n in abgeht und Online-

Sie .reverse() verwenden können, um die Reihenfolge der Elemente zu umkehren.

streams.sort().reverse() 

Sollte das sein, was Sie suchen, brauchen Sie nicht das Array neu zuzuordnen (das heißt streams = streams.sort().reverse() tun), wie es die Operationen intern in Ihrem Array tut.

+0

Ja, das ist, was ich suche. Vielen Dank! –

2
streams.sort(); 

Sonst möchten Sie wahrscheinlich nur das Array durchlaufen.

+2

Wenn ich sort() benutze, geschieht dies alphabetisch von meinem Verständnis und wird offline nach vorne geschoben. –

+0

oh, heh. In der Tat könnte das Duplizieren des Arrays schneller sein als das Sortieren. – gengkev

3

verwenden, um die integrierte Array-Funktionen:

streams.sort().reverse(); 

, die einfach war ...

MDN docs:

Verwandte Themen