আমাদের এইরকম একটি অ্যারে আছে −
const arr = [{
year: 2020,
month: 'January'
}, {
year: 2017,
month: 'March'
}, {
year: 2010,
month: 'January'
}, {
year: 2010,
month: 'December'
}, {
year: 2020,
month: 'April'
}, {
year: 2017,
month: 'August'
}, {
year: 2010,
month: 'February'
}, {
year: 2020,
month: 'October'
}, {
year: 2017,
month: 'June'
}] আমাদের এই অ্যারেকে ক্রমবর্ধমান ক্রমে (ক্রমবর্ধমান) বছর অনুসারে সাজাতে হবে। তাছাড়া, যদি একই বছরের সম্পত্তির সাথে দুটি বস্তু বিদ্যমান থাকে, তাহলে আমাদের সেই বছরগুলিকে মাস অনুসারে সাজাতে হবে (যেমন জান, তারপর ফেব্রুয়ারী, তারপর মার্চ ইত্যাদি)।
সুতরাং, আসুন এই বাছাই সমস্যার জন্য কোড লিখি। এর জন্য সম্পূর্ণ কোড হবে −
উদাহরণ
const arr = [{
year: 2020,
month: 'January'
}, {
year: 2017,
month: 'March'
}, {
year: 2010,
month: 'January'
}, {
year: 2010,
month: 'December'
}, {
year: 2020,
month: 'April'
}, {
year: 2017,
month: 'August'
}, {
year: 2010,
month: 'February'
}, {
year: 2020,
month: 'October'
}, {
year: 2017,
month: 'June'
}]
const months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
const sorter = (a, b) => {
if(a.year !== b.year){
return a.year - b.year;
}else{
return months.indexOf(a.month) - months.indexOf(b.month);
};
};
arr.sort(sorter);
console.log(arr); আমরা পরীক্ষা করি যে বছরগুলি আলাদা কিনা, আমরা সেগুলিকে বছর অনুসারে বাছাই করি, কিন্তু যখন বছরগুলি একই থাকে, তখন আমরা আমাদের সংজ্ঞায়িত কাস্টম মাস অ্যারের সাহায্য নিয়ে মাসগুলি পরীক্ষা করি এবং এইভাবে, একই বছরের বস্তুগুলি মাস অনুসারে সাজানো হয়।
আউটপুট
কনসোলে আউটপুট হবে −
[
{ year: 2010, month: 'January' },
{ year: 2010, month: 'February' },
{ year: 2010, month: 'December' },
{ year: 2017, month: 'March' },
{ year: 2017, month: 'June' },
{ year: 2017, month: 'August' },
{ year: 2020, month: 'January' },
{ year: 2020, month: 'April' },
{ year: 2020, month: 'October' }
]