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

Cách sắp xếp mảng ngày trong JavaScript

Giả sử chúng ta có một mảng chứa một số ngày như thế này -

const arr = [
   [ '02/13/2015', 0.096 ],
   [ '11/15/2013', 0.189 ],
   [ '05/15/2014', 0.11 ],
   [ '12/13/2013', 0.1285 ],
   [ '01/15/2013', 0.12 ],
   [ '01/15/2014', 0.11 ],
   [ '02/14/2014', 0.11 ],
   [ '03/14/2014', 0.11 ],
   [ '01/15/2015', 0.096 ],
   [ '07/15/2015', 0.096 ],
   [ '04/15/2013', 0.12 ],
   [ '04/15/2014', 0.11 ],
   [ '05/15/2013', 0.12 ],
   [ '06/14/2013', 0.12 ],
   [ '06/16/2014', 0.11 ],
   [ '07/15/2013', 0.12 ],
   [ '07/15/2014', 0.11 ],
   [ '03/16/2015', 0.096 ]
];

Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong một mảng như vậy và sắp xếp mảng theo thứ tự tăng dần theo ngày tháng trong mỗi mảng.

Ví dụ

Sau đây là mã -

const arr = [
   [ '02/13/2015', 0.096 ],
   [ '11/15/2013', 0.189 ],
   [ '05/15/2014', 0.11 ],
   [ '12/13/2013', 0.1285 ],
   [ '01/15/2013', 0.12 ],
   [ '01/15/2014', 0.11 ],
   [ '02/14/2014', 0.11 ],
   [ '03/14/2014', 0.11 ],
   [ '01/15/2015', 0.096 ],
   [ '07/15/2015', 0.096 ],
   [ '04/15/2013', 0.12 ],
   [ '04/15/2014', 0.11 ],
   [ '05/15/2013', 0.12 ],
   [ '06/14/2013', 0.12 ],
   [ '06/16/2014', 0.11 ],
   [ '07/15/2013', 0.12 ],
   [ '07/15/2014', 0.11 ],
   [ '03/16/2015', 0.096 ]
];
const sortByDate = arr => {
   const sorter = (a, b) => {
      return new Date(a[0]) - new Date(b[0]);
   };
   arr.sort(sorter);
};
sortByDate(arr);
console.log(arr);

Đầu ra

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

[
   [ '01/15/2013', 0.12 ],
   [ '04/15/2013', 0.12 ],
   [ '05/15/2013', 0.12 ],
   [ '06/14/2013', 0.12 ],
   [ '07/15/2013', 0.12 ],
   [ '11/15/2013', 0.189 ],
   [ '12/13/2013', 0.1285 ],
   [ '01/15/2014', 0.11 ],
   [ '02/14/2014', 0.11 ],
   [ '03/14/2014', 0.11 ],
   [ '04/15/2014', 0.11 ],
   [ '05/15/2014', 0.11 ],
   [ '06/16/2014', 0.11 ],
   [ '07/15/2014', 0.11 ],
   [ '01/15/2015', 0.096 ],
   [ '02/13/2015', 0.096 ],
   [ '03/16/2015', 0.096 ],
   [ '07/15/2015', 0.096 ]
]