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

Sắp xếp mảng theo JavaScript tháng-năm

Giả sử, chúng ta có một mảng chứa ngày tháng ở định dạng MM-YYYY như thế này -

const arr = ["1-2016", "7-2015", "7-2016", "3-2016", "8-2016", "2-2016", "6-2016", "8-2015", "5-2016", "4-2016", "9-2015", "10-2015", "11-2015", "12-2015"];

Chúng tôi bắt buộc phải viết một hàm JavaScript có trong một mảng như vậy và sắp xếp nó sao cho các ngày trong mảng được sắp xếp theo thứ tự cũ nhất đến mới nhất.

Ví dụ

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

const arr = ["1-2016", "7-2015", "7-2016", "3-2016", "8-2016", "2-2016", "6-2016", "8-2015", "5-2016", "4-2016", "9-2015", "10-2015", "11-2015", "12-2015"];
const padToString = (num) => {
   return String("0" + num).slice(-2);
};
const sortByDate = (first, second) => {
   const firstPart = first.split('-'), secondPart = second.split('-');
   const a = firstPart[1]+padToString(firstPart[0]);
   const b = secondPart[1]+padToString(secondPart[0]);
   return a - b;
};
arr.sort(sortByDate);
console.log(arr);

Đầu ra

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

[
   '7-2015', '8-2015',
   '9-2015', '10-2015',
   '11-2015', '12-2015',
   '1-2016', '2-2016',
   '3-2016', '4-2016',
   '5-2016', '6-2016',
   '7-2016', '8-2016'
]