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

การเรียงลำดับตัวเลขจากน้อยไปมากและสตริงตามลำดับตัวอักษรในอาร์เรย์ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขและสตริง ฟังก์ชันของเราควรจะส่งคืนอาร์เรย์เดียวที่มีการเรียงลำดับตัวเลขจากน้อยไปหามากก่อน ตามด้วยสตริงที่เรียงลำดับตามตัวอักษร

ค่าต่างๆ จะต้องคงไว้ซึ่งรูปแบบเดิม

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [5, 8, 'car', 'dad', 'amber', 1, 12, 76, 'bat'];
const separateSort = (arr = []) => {
   const sorter = (a, b) => {
      if(typeof a === 'number' && typeof b === 'string'){
         return -1;
      };
      if(typeof a === 'string' && typeof b === 'number'){
         return 1;
      };
      if(typeof a === 'string' && typeof b === 'string'){
         return a.charCodeAt(0) - b.charCodeAt(0);
      };
      return a - b;
   };
   const res = arr.sort(sorter);
   return res;
};
console.log(separateSort(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

[
   1, 5,
   8, 12,
   76, 'amber',
   'bat', 'car',
   'dad'
]