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

จัดเรียงอาร์เรย์ตามเดือนปี JavaScript


สมมติว่าเรามีอาร์เรย์ที่มีวันที่ในรูปแบบ MM-YYYY ดังนี้ −

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

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและจัดเรียงเพื่อให้วันที่ในอาร์เรย์ถูกจัดเรียงตามลำดับที่เก่าที่สุดไปหาใหม่ที่สุด

ตัวอย่าง

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

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

ผลลัพธ์

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

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