Computer >> Máy Tính >  >> Lập trình >> Javascript

Cách sắp xếp danh sách đối tượng JavaScript dựa trên thuộc tính khi thuộc tính không nhất quán

Chúng ta có một mảng chứa các đối tượng khác nhau. Một số đối tượng trên mảng này có trường ngày (về cơ bản được trả về dưới dạng chuỗi từ máy chủ, không phải đối tượng ngày), trong khi đối với những đối tượng khác thì trường này là null.

Yêu cầu là chúng ta phải hiển thị các đối tượng không có ngày ở trên cùng và những đối tượng có ngày cần được hiển thị sau khi chúng được sắp xếp theo trường ngày.

Ngoài ra, đối với các đối tượng không có ngày, việc phân loại cần được thực hiện theo thứ tự bảng chữ cái.

Ví dụ

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;
   }
});