2013-09-30 4 views
61

이 배열이 있습니다. 밑줄 '_.sortBy'를 사용하여 시작일에 따라 정렬하려면 어떻게합니까?밑줄이있는 객체 정렬을 사용하는 배열 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' }, 
    } 
] 

답변

145

반복자 기능이 아닌 속성에 대한 하나의 문자열을 사용

당신이 하강합니다
var sorted = _(list).sortBy(
        function (item) {       
         return [new Date(item.effectiveDate).getTime(), item.batchId]; 
        }), "batchId"); 

다음이 같은 일이 :

_.sortBy(arr, function(o) { return o.start.dateTime; }) 
+0

오름차순으로 표시하지만 날짜를 내림차순으로 정렬하는 방법은 무엇입니까? – Robin

+5

@RobinAT : 내림차순으로 내림차순을 사용하려면 datetime – Bergi

+14

을 부정 할 수 있습니다. 내림차순으로 내림차순을 사용하려면 arr.reverse() – JrBriones

1

를 나는 이런 식으로했다 그러나 * -1

var sorted = _(list).sortBy(
        function (item) {       
         return [new Date(item.effectiveDate).getTime()*-1, item.batchId]; 
        }), "batchId"); 

이 예제에서는 두 개의 필드로 정렬하고 있습니다. item.batchId를 잊어 버릴 수 있습니다.

희망이 있으면 도움이됩니다.