Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp số tăng dần và chuỗi theo alphabet trong mảng bằng JavaScript


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