JavaScript Array.sort() मेथड
sort() मेथड ऐरे को इन-प्लेस सॉर्ट करता है और उसी ऐरे को लौटाता है। डिफ़ॉल्ट रूप से यह स्ट्रिंग तुलना करता है (यूनिकोड कोड पॉइंट्स के आधार पर)।
सिंटैक्स
array.sort(compareFunction)
कॉम्पेरिजन फंक्शन
function compare(a, b) {
if (a < b) return -1; // a पहले आएगा
if (a > b) return 1; // b पहले आएगा
return 0; // क्रम अपरिवर्तित
}
उदाहरण 1: ऑब्जेक्ट्स ऐरे को age (उम्र) से सॉर्ट करना
<html> <body> <script>
var persons = [
{ name: 'राजेश', birth: 1845, death: 1875 },
{ name: 'भारत', birth: 1909, death: 1917 },
{ name: 'बाबा', birth: 1950, death: 1972 },
{ name: 'तनिष', birth: 2039, death: 2067 },
{ name: 'रहीम', birth: 1989, death: 2049 }
];
// आयु (death - birth) के अनुसार अवरोही क्रम (घटता हुआ)
var sortedDesc = persons.slice().sort(function(a, b) {
var ageA = a.death - a.birth;
var ageB = b.death - b.birth;
return ageB - ageA; // अवरोही
});
console.log("अवरोही क्रम:", sortedDesc);
// आरोही क्रम (बढ़ता हुआ)
var sortedAsc = persons.slice().sort(function(a, b) {
var ageA = a.death - a.birth;
var ageB = b.death - b.birth;
return ageA - ageB; // आरोही
});
console.log("आरोही क्रम:", sortedAsc);
</script> </body> </html>
कंसोल आउटपुट
अवरोही क्रम: रहीम (60), राजेश (30), तनिष (28), बाबा (22), भारत (8) आरोही क्रम: भारत (8), बाबा (22), तनिष (28), राजेश (30), रहीम (60)
संख्यात्मक ऐरे सॉर्ट करना
<script> var nums = [10, 5, 40, 25, 100, 1]; // गलत: स्ट्रिंग सॉर्ट nums.sort(); // [1, 10, 100, 25, 40, 5] ❌ // सही: संख्यात्मक सॉर्ट nums.sort((a, b) => a - b); // [1, 5, 10, 25, 40, 100] ✅ nums.sort((a, b) => b - a); // [100, 40, 25, 10, 5, 1] ✅ (अवरोही) </script>
स्ट्रिंग्स सॉर्ट करना (लोकल-आधारित)
<script> var hindi = ['आम', 'केला', 'अंगूर', 'सेब']; hindi.sort((a, b) => a.localeCompare(b, 'hi')); // ['अंगूर', 'आम', 'केला', 'सेब'] </script>
महत्वपूर्ण नोट्स
- मूल ऐरे बदल जाता है - कॉपी के लिए
slice().sort()उपयोग करें - डिफ़ॉल्ट स्ट्रिंग सॉर्ट संख्याओं के लिए गलत परिणाम देता है
localeCompare()अंतरराष्ट्रीयकरण के लिए सर्वोत्तम- स्थिर सॉर्ट (Stable sort) ES2019 से गारंटीड