मान लीजिए, हमारे पास स्ट्रिंग literals की एक सरणी है जैसे -
const arr = ['1185 Design','3 D Exhibits','44Doors', '4Concepts','ABC Data','acceleration'];
हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी लेता है और सरणी को इन-प्लेस क्रमबद्ध करता है।
क्रमबद्ध करने वाला फ़ंक्शन ऐसा होना चाहिए कि विशेष वर्णों, अंकों से शुरू होने वाली सभी स्ट्रिंग पहले दिखाई दें।
उसके बाद, स्ट्रिंग वर्णमाला क्रम में दिखाई देनी चाहिए और यदि हमारे पास दो स्ट्रिंग हैं जो समान वर्णमाला से शुरू होती हैं लेकिन अलग-अलग केस में, तो लोअरकेस वर्णमाला से शुरू होने वाली स्ट्रिंग पहले दिखाई देनी चाहिए।
उदाहरण
इसके लिए कोड होगा -
const arr = ['1185 Design','3 D Exhibits','44Doors', '4Concepts','ABC Data','acceleration'];
const caseSensitiveSort = (arr = []) => {
const sorter = (a, b) => {
if (a === b){
return 0
};
if (a.charAt(0) === b.charAt(0)){
return sorter(a.slice(1), b.slice(1))
}
if(a.charAt(0).toLowerCase() === b.charAt(0).toLowerCase()){
if(/^[a-z]/.test(a.charAt(0)) && /^[A-Z]/.test(b.charAt(0))){
return -1;
};
if(/^[a-z]/.test(b.charAt(0)) && /^[A-Z]/.test(a.charAt(0))){
return 1;
};
};
return a.localeCompare(b);
};
arr.sort(sorter);
}
caseSensitiveSort(arr);
console.log(arr);
आउटपुट
कंसोल में आउटपुट होगा -
[
'1185 Design',
'3 D Exhibits',
'44Doors',
'4Concepts',
'acceleration',
'ABC Data'
]