使用Underscore sortBy进行对象排序的数组

Jac*_*Dre 67 javascript sorting node.js underscore.js

我有这个数组.如何根据开始日期使用下划线'_.sortBy'对其进行排序?

[
    { 
        id: 'oljw832021kjnb389xzll323jk',
        start: { dateTime: '2013-09-26T13:30:00-07:00' },
        end: { dateTime: '2013-09-26T14:30:00-07:00' },
    },
    { 
        id: 'ed7l5tmckdp0lm90nvr4is3d4c',
        start: { dateTime: '2013-09-26T15:30:00-07:00' },
        end: { dateTime: '2013-09-26T16:30:00-07:00' },
    },
    { 
        id: 'etmasdsackdp0kjl0nvrkopioqw',
        start: { dateTime: '2013-09-26T18:00:00-07:00' },
        end: { dateTime: '2013-09-26T19:00:00-07:00' },
    }
]
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 159

使用迭代器函数,而不是属性的单个字符串:

_.sortBy(arr, function(o) { return o.start.dateTime; })
Run Code Online (Sandbox Code Playgroud)

  • 如果你想做降序,那就做arr.reverse() (16认同)
  • 如果你想要降序的日期,那么使用下面的`_.sortBy(arr,function(o){var dt = new Date(o.start.dateTime); return -dt;})` (11认同)
  • @RobinAT:你可以否定日期时间 (7认同)
  • @imdadhusen:是的,当我说"*否定日期时间*"时,这就是我的意思.但是,`Date`对象是多余的,你只需要`return -o.start.dateTime;` (3认同)