Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp các số theo thứ tự tăng dần và các chuỗi theo thứ tự bảng chữ cái trong một mảng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có một mảng số và chuỗi. Hàm của chúng ta phải trả về một mảng duy nhất có các số đầu tiên được sắp xếp theo thứ tự tăng dần, tiếp theo là các chuỗi được sắp xếp theo thứ tự bảng chữ cái.

Các giá trị phải duy trì kiểu ban đầu của chúng.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

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