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