मान लीजिए, हमारे पास ऑब्जेक्ट्स का एक ऐरे है जिसमें सप्ताह के सात दिनों में नमी के बारे में डेटा है। डेटा, हालांकि, अभी ऐरे में बेतरतीब ढंग से बैठा है। हमें ऑब्जेक्ट्स के ऐरे को दिनों के अनुसार सॉर्ट करना है जैसे सोमवार का डेटा पहले आए, फिर मंगलवार, बुधवार और अंत में रविवार।
निम्न हमारा ऐरे है:
const weather = [
{ day: 'Wednesday', humidity: 60 },
{ day: 'Saturday', humidity: 50 },
{ day: 'Thursday', humidity: 65 },
{ day: 'Monday', humidity: 40 },
{ day: 'Sunday', humidity: 35 },
{ day: 'Friday', humidity: 80 },
{ day: 'Tuesday', humidity: 45 }
];
इस समस्या की कुंजी हमारे मैप ऑब्जेक्ट को बनाना है जो सप्ताह के विशिष्ट दिनों को उनके सही इंडेक्स से मैप करता है। यह कुछ इस तरह दिखेगा:
const map = {
'Monday': 1,
'Tuesday': 2,
'Wednesday': 3,
'Thursday': 4,
'Friday': 5,
'Saturday': 6,
'Sunday': 7
};
अब इसके स्पष्ट होने के साथ, हम Array.prototype.sort() मेथड को लागू कर सकते हैं जिसमें एक कस्टम कॉलबैक पास करते हैं जो ऑब्जेक्ट्स को मैप में उनके इंडेक्स के अनुसार रैंक करता है।
इसे करने का पूरा कोड होगा:
उदाहरण
const weather = [
{ day: 'Wednesday', humidity: 60 },
{ day: 'Saturday', humidity: 50 },
{ day: 'Thursday', humidity: 65 },
{ day: 'Monday', humidity: 40 },
{ day: 'Sunday', humidity: 35 },
{ day: 'Friday', humidity: 80 },
{ day: 'Tuesday', humidity: 45 }
];
const map = {
'Monday': 1,'Tuesday': 2,'Wednesday': 3,'Thursday': 4,'Friday': 5,'Saturday': 6,
'Sunday': 7
};
weather.sort((a, b) => {
return map[a.day] - map[b.day];
});
console.log(weather);
आउटपुट
इस कोड का आउटपुट होगा:
[
{ day: 'Monday', humidity: 40 },
{ day: 'Tuesday', humidity: 45 },
{ day: 'Wednesday', humidity: 60 },
{ day: 'Thursday', humidity: 65 },
{ day: 'Friday', humidity: 80 },
{ day: 'Saturday', humidity: 50 },
{ day: 'Sunday', humidity: 35 }
]