2012-04-09 100 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文档: