Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

속성이 일치하지 않을 때 속성을 기반으로 JavaScript 개체 목록을 정렬하는 방법

<시간/>

다양한 객체를 포함하는 배열이 있습니다. 이 배열의 일부 개체에는 날짜 필드(기본적으로 날짜 개체가 아닌 서버에서 문자열로 반환됨)가 있는 반면 다른 개체의 경우 이 필드는 null입니다.

요구 사항은 맨 위에 날짜가 없는 개체를 표시해야 하고 날짜가 있는 개체는 날짜 필드별로 정렬된 뒤에 표시되어야 한다는 것입니다.

또한 날짜가 없는 개체의 경우 알파벳순으로 정렬해야 합니다.

예시

const sorter = ((a, b) => {
   if (typeof a.date == 'undefined' && typeof b.date != 'undefined') {
      return -1;
   }
   else if (typeof a.date != 'undefined' && typeof b.date == 'undefined') {
      return 1; }
   else if (typeof a.date == 'undefined' && typeof b.date == 'undefined') {
      return a.name.localeCompare(b.name);
   }
   else if (a.date == null && b.date != null) {
      return -1;
   }
   else if (a.date != null && b.date == null) {
      return 1;
   }
   else if (a.date == null && b.date == null) {
      return 0;
   }
   else {
      var d1 = Date.parse(a.date);
      var d2 = Date.parse(b.date);
      return d1 - d2;
   }
});