2012-04-09 111 views
4

現在,我有一個數據流列表,我想用「在線」字符串將數據流推送到數組的前端,但我希望非常快速地完成此操作。我知道我可以通過值重複數組值,並將在線值推到前面,但我想知道是否有更好的方法來做到這一點。按字符串排序數組

這只是一些示例代碼,但它與我所做的相似。我怎麼才能重新排列我的陣列,將它推向前面?我打開JavaScript或jQuery的答案。

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

回答

11
streams.sort() 

會給你["offline", "offline", "offline", "offline", "online", "online", "online", "online"]

由於f進來關閉前N和在線

您可以使用.reverse()扭轉元素的順序。

streams.sort().reverse() 

應該是你在找什麼,因爲它的操作的內部數組中,你不需要重新分配陣列(即做streams = streams.sort().reverse())。

+0

是的,這就是我要找的。謝謝! – 2012-04-09 02:50:37

2
streams.sort(); 

否則,你可能只是想循環訪問數組。

+2

如果我使用sort(),它會按照我的理解按字母順序排列它,並將離線推到前面。 – 2012-04-09 02:49:35

+0

哦,嘿。實際上,重複數組可能比排序快。 – gengkev 2012-04-09 02:51:58

3

使用內置陣列功能:

streams.sort().reverse(); 

這很容易......

MDN文檔: