【问题标题】:Sort nested array by value?按值对嵌套数组进行排序?
【发布时间】:2013-03-12 01:39:49
【问题描述】:

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

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 对其进行排序的方法,以便数组按从头到尾或从​​最低到最高显示日期?

【问题讨论】:

    标签: arrays underscore.js


    【解决方案1】:

    您可以将sortBy 与一个函数一起使用来挑选内部数组的第一个元素:

    排序依据 _.sortBy(list, iterator, [context])

    返回 list 的排序副本,按每个值通过 iterator 运行的结果升序排列。迭代器也可以是要排序的属性的字符串名称(例如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/

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 2015-11-06
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多