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

Sắp xếp mảng lồng nhau chứa các đối tượng tăng dần và giảm dần theo ngày tháng trong JavaScript

Giả sử chúng ta có một Đối tượng JSON chứa một mảng lồng nhau như thế này -

const arr = {
   "DATA": [
      {
         "BookingID": "9513",
         "DutyStart": "2016-02-11 12:00:00"
      },
      {
         "BookingID": "91157307",
         "DutyStart": "2016-02-11 13:00:00"
      },
      {
         "BookingID": "95117317",
         "DutyStart": "2016-02-11 13:30:00"
      },
      {
         "BookingID": "957266",
         "DutyStart": "2016-02-12 19:15:00"
      },
      {
         "BookingID": "74",
         "DutyStart": "2016-02-11 12:21:00"
      }
   ]
};

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một đối tượng như vậy và sắp xếp mảng lồng nhau theo thuộc tính 'dutyStart' theo thứ tự tăng dần hoặc giảm dần.

Ví dụ

Mã cho điều này sẽ là -

const arr = {
   "DATA": [
      {
         "BookingID": "9513",
         "DutyStart": "2016-02-11 12:00:00"
      },
      {
         "BookingID": "91157307",
         "DutyStart": "2016-02-11 13:00:00"
      },
      {
         "BookingID": "95117317",
         "DutyStart": "2016-02-11 13:30:00"
      },
      {
         "BookingID": "957266",
         "DutyStart": "2016-02-12 19:15:00"
      },
      {
         "BookingID": "74",
         "DutyStart": "2016-02-11 12:21:00"
      }
   ]
};
const sortByDate = arr => {
   const sorter = (a, b) => {
      return new Date(a.DutyStart).getTime() - new Date(b.DutyStart).getTime();
   };
   arr["DATA"].sort(sorter);
   return arr;
};
console.log(sortByDate(arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{
   DATA: [
      { BookingID: '9513', DutyStart: '2016-02-11 12:00:00' },
      { BookingID: '74', DutyStart: '2016-02-11 12:21:00' },
      { BookingID: '91157307', DutyStart: '2016-02-11 13:00:00' },
      { BookingID: '95117317', DutyStart: '2016-02-11 13:30:00' },
      { BookingID: '957266', DutyStart: '2016-02-12 19:15:00' }
   ]
}