arrays - 按值对嵌套数组进行排序?

标签 arrays underscore.js

我有一个如下所示的嵌套数组:

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 对其进行排序,以便数组按从早到晚或从低到高的顺序显示日期?

最佳答案

你可以使用 sortBy带有一个函数来挑选内部数组的第一个元素:

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

Returns a sorted copy of list, ranked in ascending order by the results of running each value through iterator. Iterator may also be the string name of the property to sort by (eg. 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/

关于arrays - 按值对嵌套数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334015/

相关文章:

c++ - 如何在c++中打印n维数组

c - 错误 : flexible array member not at end of struct

html - 影响样式的下划线

javascript - 我应该如何检查 Jasmine 或javascript中的排序语句

node.js - NodeJS 回调序列

javascript - 如何在javascript中按时间对对象数组进行排序

c - 在 C 中使用 calloc 的二维数组 unsigned char 中的段错误

在 C 中将两个浮点文件合并为一个文件

javascript - 数组包含其他数组的值

javascript - 下划线或lazy.js 映射 (0,1,2,3,4) + (1,2,3,4,5) ->(1,3,5,7,9)