Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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


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

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 ta cần viết một hàm JavaScript nhận một mảng như vậy và sắp xếp nó sao cho các ngày được sắp xếp theo thứ tự từ cũ đến mới.

Ví dụ

Mã thực hiện:

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

Kết quả

Kết quả trong console:

[
  '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'
]