Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เรียงตามตัวพิมพ์เล็กและใหญ่ใน JavaScript


สมมติว่าเรามีอาร์เรย์ของตัวอักษรสตริงเช่นนี้ −

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'
]