Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng chứa số và chuỗi. Hàm phải trả về một mảng đơn có trước các số được sắp xếp tăng dần, theo sau là các chuỗi được sắp xếp theo thứ tự bảng chữ cái.
Các giá trị phải giữ nguyên kiểu gốc.
Ví dụ
Dưới đâ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));
Kết quả
Kết quả console:
[ 1, 5, 8, 12, 76, 'amber', 'bat', 'car', 'dad' ]