สมมติว่าเรามีอาร์เรย์ของตัวอักษรสตริงเช่นนี้ −
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' ]