2013-03-11 93 views
2

我有類似下面的嵌套數組:按值排序嵌套數組?

data = [ 
[Date.UTC(2013, 1, 1), 1], 
[Date.UTC(2013, 1, 5), 22], 
[Date.UTC(2013, 1, 2), 2], 
[Date.UTC(2013, 1, 11), 33] 
] 

我使用下劃線和我試圖找出一個辦法由Date.UTC對它進行排序,以便數組顯示日期由第一個到最後或最低到最高?

回答

5

你可以使用sortBy與功能摘下內陣列的第一要素:

sortBy_.sortBy(list, iterator, [context])

通過返回列表的排序複印件,按升序排名通過迭代器運行每個值的結果。迭代器也可以是要排序的屬性的字符串名稱(例如,length)。

因此,也許這樣的:

_(data).sortBy(function(a) { 
    return a[0]; 
}); 

由於Data.UTC給你一個號碼,你可以在一個否定扔在相反的方向進行排序:

_(data).sortBy(function(a) { 
    return -a[0]; 
}); 

你也可以這樣做:

_(data).sortBy('0') 

演示:http://jsfiddle.net/ambiguous/mLDzH/

+0

謝謝!完美 - 這就是我正在尋找的 – Andy 2013-03-11 20:06:01