lodash 다중 열 정렬 기준
여러 속성을 기준으로 객체 배열을 정렬하는 훌륭한 방법이 있습니다.
var data = _.sortBy(array_of_objects, ['type', 'name']);
그러나 이는 오름차순 정렬에만 해당됩니다.열당 방향을 정의하는 유용한 방법이 있습니까?예.
var data = _.sortBy(array_of_objects, [{'type': 'asc'}, {'name': 'desc'}]);
lodash 3.5.0 이후에는 sortByOrder(v4.3.0에서 OrderBy로 이름 변경)를 사용할 수 있습니다.
var data = _.sortByOrder(array_of_objects, ['type','name'], [true, false]);
버전 3.10.0 이후에는 주문(asc, desc)에 표준 의미론을 사용할 수도 있습니다.
var data = _.sortByOrder(array_of_objects, ['type','name'], ['asc', 'desc']);
lodash 버전 4에서 이 방법은 orderBy로 이름이 변경되었습니다.
var data = _.orderBy(array_of_objects, ['type','name'], ['asc', 'desc']);
언제든지 사용할 수 있습니다.Array.prototype.reverse()
var data = _.sortBy(array_of_objects, ['type', 'name']).reverse();
딥 필드 & 멀티 필드 & 다양한 방향으로 로다쉬 주문 > 4.
var sortedArray = _.orderBy(mixedArray,
['foo','foo.bar','bar.foo.bar'],
['desc','asc','desc']);
특정 속성을 내림차순으로 정렬하려면 마지막에 단순히 .reverse()를 추가하지 않는 것이 좋습니다. 이렇게 하면 모든 정렬이 내림차순으로 수행되기 때문입니다.
특정 내림차순으로 정렬하려면 내림차순으로 정렬하고 각 내림차순으로 정렬할 때마다 .reverse()를 호출합니다.
var data = _(data).chain()
.sort("date")
.reverse() // sort by date descending
.sort("name") // sort by name ascending
.result()
_의 정렬은 안정적인 정렬이므로 두 항목의 속성 값이 동일하면 순서가 유지되므로 안전하게 체인을 연결하고 역순 정렬할 수 있습니다.
버전 4.11.x의 설명서에서 "이 방법은 _.sortBy와 유사하지만 정렬 기준으로 반복되는 항목의 정렬 순서를 지정할 수 있습니다.순서를 지정하지 않으면 모든 값이 오름차순으로 정렬됩니다.그렇지 않으면 내림차순으로 "슬라이드"를 지정하거나 해당 값의 오름차순 정렬 순서로 "슬라이드"를 지정합니다. (소스 https://lodash.com/docs/4.17.10#orderBy)
let sorted = _.orderBy(this.items, ['fieldFoo', 'fieldBar'], ['asc', 'desc'])
열당 방향을 정의하는 유용한 방법이 있습니까?
값을 반전시키는 콜백 함수 이외에는 정렬 순서를 지정할 수 없습니다.다중 열 정렬의 경우에도 이 작업을 수행할 수 없습니다.
당신은 할 수 있을지도 모릅니다.
_.each(array_of_objects, function(o) {
o.typeDesc = -o.type; // assuming a number
});
_.sortBy(array_of_objects, ['typeDesc', 'name'])
다른 모든 것을 위해서, 당신은 원주민에게 의지해야 할 것입니다..sort()
사용자 정의 비교 기능 포함:
array_of_objects.sort(function(a, b) {
return a.type - b.type // asc
|| +(b.name>a.name)||-(a.name>b.name) // desc
|| …;
});
다음을 시도할 수도 있습니다.
var data= _.reverse(_.sortBy(res.locals.subscriptionList.items, ['type', 'name']));
언급URL : https://stackoverflow.com/questions/22928841/lodash-multi-column-sortby
'code' 카테고리의 다른 글
Python의 랜덤 해시 (0) | 2023.08.06 |
---|---|
그룹화 기준 및 주문 기준 (0) | 2023.08.06 |
Android는 .apk 파일을 보관합니까?만약 그렇다면 어디에? (0) | 2023.08.06 |
자바에서 HTML 문자 엔티티를 해제하려면 어떻게 해야 합니까? (0) | 2023.08.01 |
패키지에 나열된 모든 종속성을 제거하는 방법은 무엇입니까?json(NPM)? (0) | 2023.08.01 |