2013-03-11 94 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