Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จัดเรียงอาร์เรย์ที่ซ้อนกันที่มีวัตถุขึ้นและลงตามวันที่ใน JavaScript


สมมติว่าเรามี JSON Object ที่มีอาร์เรย์ที่ซ้อนกันเช่นนี้ -

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"
      }
   ]
};

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุดังกล่าวและจัดเรียงอาร์เรย์ที่ซ้อนกันตามคุณสมบัติ 'dutyStart' โดยเรียงลำดับจากน้อยไปมากหรือมากไปหาน้อย

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

{
   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' }
   ]
}