>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 객체 배열을 날짜별로 내림차순으로 정렬하려면 어떻게 해야 합니까?

JavaScript에서 객체 배열을 날짜별로 내림차순으로 정렬하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-27 16:04:10742검색

How Can I Sort an Array of Objects by Date in Descending Order in JavaScript?

날짜 속성별로 객체 배열 정렬

문제: 날짜 속성이 있는 객체 배열이 있고 원하는 가장 가까운 날짜를 기준으로 내림차순으로 정렬하려면 현재.

해결책:

사용자 정의 비교기 사용:

한 가지 접근 방식은 내장된 정렬( ) 메서드와 사용자 정의 비교기 기능이 함께 제공됩니다. 비교기 함수는 두 개체 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.