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

Sắp xếp Mảng gồm các phần tử số &chữ cái (Sắp xếp Tự nhiên) JavaScript

Chúng ta có một mảng chứa một số số và một số chuỗi. Chúng tôi bắt buộc phải sắp xếp mảng sao cho các số được sắp xếp và đặt trước mỗi chuỗi và sau đó các chuỗi phải được sắp xếp theo thứ tự bảng chữ cái.

Ví dụ -

Mảng này sau khi được sắp xếp

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];

Sẽ giống như thế này -

[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']

Vì vậy, hãy viết mã cho điều này -

Ví dụ

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];
const sorter = (a, b) => {
   if(typeof a === 'number' && typeof b === 'number'){
      return a - b;
   }else if(typeof a === 'number' && typeof b !== 'number'){
      return -1;
   }else if(typeof a !== 'number' && typeof b === 'number'){
      return 1;
   }else{
      return a > b ? 1 : -1;
   }
}
arr.sort(sorter);
console.log(arr);

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']

Hiểu mã -

Phần chính của đoạn mã này là hàm sắp xếp, chúng ta biết rằng hàm gọi lại nhận được hai đối số, cả hai đều là các phần tử của mảng.

Bây giờ chúng ta có bốn khả năng -

  • Cả a và b đều là số → trong trường hợp này chúng ta đặt số nhỏ hơn số lớn hơn

  • a là số nhưng b là chuỗi → trong trường hợp này chúng ta đặt số (a) trước chuỗi (b) như trong câu hỏi.

  • a là chuỗi nhưng b là số → trong trường hợp này chúng ta đặt b trước a

  • Cả a và b đều là chuỗi → chúng tôi kiểm tra chuỗi nhỏ hơn theo thứ tự bảng chữ cái, tức là, đến trước và đặt trước.