Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เรียงอาร์เรย์ตามวันที่ใน JavaScript

อาร์เรย์อ็อบเจ็กต์มี property date: [{id: 1, date: 'Mar 12 2012 10:00:00 AM'}, {id: 2, date: 'Mar 8 2012 08:00:00 AM'}]

แปลงเป็น Date object เปรียบเทียบ timestamp เรียงลำดับ

ตัวอย่างโค้ด

const arr = [{id: 1, date: 'Mar 12 2012 10:00:00 AM'}, {id: 2, date: 'Mar 8 2012 08:00:00 AM'}];
const sortByDate = arr => {
  const sorter = (a, b) => {
    return new Date(a.date).getTime() - new Date(b.date).getTime();
  };
  arr.sort(sorter);
};
sortByDate(arr);
console.log(arr);

ผลลัพธ์

[ { id: 2, date: 'Mar 8 2012 08:00:00 AM' }, { id: 1, date: 'Mar 12 2012 10:00:00 AM' } ]

คำอธิบาย: new Date(dateString).getTime() คืน milliseconds นับจาก epoch เปรียบเทียบตัวเลขตรงๆ เรียงจากเก่าสุดไปใหม่สุด (ascending) หากต้องการใหม่สุดก่อน ให้สลับ a,b