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

Sắp xếp mảng số và chữ (Natural Sort) JavaScript

Cho mảng chứa số và chuỗi. Sắp xếp: số trước (tăng dần), sau đó chuỗi (theo chữ cái).

Ví dụ:

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

Sau sắp xếp:

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

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

Kết quả

Đầu ra console:

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

Giải thích: callback sort nhận 2 phần tử, 4 trường hợp: cả 2 số, a số b chuỗi, a chuỗi b số, cả 2 chuỗi. Xử lý từng trường hợp để số đứng trước chuỗi.