날짜 속성별로 객체 배열 정렬
문제: 날짜 속성이 있는 객체 배열이 있고 원하는 가장 가까운 날짜를 기준으로 내림차순으로 정렬하려면 현재.
해결책:
사용자 정의 비교기 사용:
한 가지 접근 방식은 내장된 정렬( ) 메서드와 사용자 정의 비교기 기능이 함께 제공됩니다. 비교기 함수는 두 개체 a와 b를 인수로 사용하고 a가 b 앞에 와야 하거나 b 뒤에 와야 하거나 각각 동일한 위치에 있어야 하는 경우 음수, 양수 또는 0 값을 반환합니다.
날짜별로 정렬하기 위해 비교기 함수는 날짜 문자열을 JavaScript 날짜로 변환하고 이를 뺍니다.
array.sort(function(a, b) { return new Date(b.date) - new Date(a.date); });
일반 해결책:
더 일반적인 해결책은 배열에서 Schwartzian 변환을 수행하는 사용자 정의 sortBy() 함수를 정의하는 것입니다. 이 기능은 날짜뿐만 아니라 모든 속성을 기준으로 정렬하는 데 사용할 수 있습니다.
(function() { if (!Array.prototype.sortBy) Array.prototype.sortBy = sb; function sb(f) { // ... implementation } })();
이 사용자 정의 기능을 사용하면 다음과 같이 날짜 속성을 기준으로 정렬할 수 있습니다.
array.sortBy(function(o) { return o.date });
복잡한 날짜 비교 처리:
날짜 속성이 직접 비교할 수 없는 경우 비교 가능한 값을 추출할 수 있습니다. 예를 들어 JavaScript 날짜 객체:
array.sortBy(function(o) { return new Date(o.date) });
여러 기준으로 정렬:
sortBy() 함수를 사용하여 여러 기준으로 정렬할 수도 있습니다. . 간단히 비교 함수에서 값 배열을 반환합니다.
// Sort by date, then score (reversed), then name array.sortBy(function(o) { return [o.date, -o.score, o.name] });
위 내용은 JavaScript에서 객체 배열을 날짜별로 내림차순으로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!