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

Array with object sorting with Underscore sortBy

本文关键字:排序 数组 对象 下划线      更新时间:2023-09-26

我有这个数组。如何使用下划线"_.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, ["start"])