Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带下划线排序的对象排序的数组_Javascript_Node.js_Sorting_Underscore.js - Fatal编程技术网

Javascript 带下划线排序的对象排序的数组

Javascript 带下划线排序的对象排序的数组,javascript,node.js,sorting,underscore.js,Javascript,Node.js,Sorting,Underscore.js,我有这个数组。如何使用下划线“u.sortBy”根据开始日期对其进行排序 [ { id: 'oljw832021kjnb389xzll323jk', start: { dateTime: '2013-09-26T13:30:00-07:00' }, end: { dateTime: '2013-09-26T14:30:00-07:00' }, }, { id: 'ed7l5tmckdp0lm90nvr4i

我有这个数组。如何使用下划线“u.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' },
    }
]

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

_.sortBy(arr, function(o) { return o.start.dateTime; })
我是这样做的:

var sorted = _(list).sortBy(
                    function (item) {                        
                        return [new Date(item.effectiveDate).getTime(), item.batchId];
                    }), "batchId");
如果你想让它下降,那是一样的,但是*-1

var sorted = _(list).sortBy(
                    function (item) {                        
                        return [new Date(item.effectiveDate).getTime()*-1, item.batchId];
                    }), "batchId");
在本例中,我按两个字段排序,您可以忽略item.batchId


希望这对其他人有所帮助。

var sortedItem=..sortBy(yourArrayName,[“开始])

它以升序给出,但如何按日期降序排序?@RobinAT:如果你想按降序排序,只需按arr.reverse()进行排序,然后使用下面的
.sortBy(arr,function(o){var dt=new Date(o.start.dateTime);return-dt;})
@imdadhusen:是的,这就是我说的“否定日期时间”的意思。但是,这个
Date
对象是多余的,你可以做
return-o.start.dateTime;