हमारे पास इस तरह का एक एरे है -
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' }]हमें इस एरे को वर्ष के अनुसार आरोही क्रम (बढ़ते क्रम) में सॉर्ट करना है। इसके अलावा, यदि समान year प्रॉपर्टी वाले दो ऑब्जेक्ट मौजूद हैं, तो हमें उन वर्षों को महीने के अनुसार सॉर्ट करना होगा (जैसे जनवरी, फिर फरवरी, फिर मार्च आदि)।
तो, आइए इस सॉर्टिंग समस्या के लिए कोड लिखते हैं। इसके लिए पूरा कोड होगा -
उदाहरण
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' } ]