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

Sắp xếp số giảm dần nhưng số 0 ở đầu trong JavaScript


Cần viết hàm JavaScript nhận mảng số. Hàm sắp xếp theo tiêu chí:

  • ---Nếu mảng chứa số 0, tất cả số 0 phải xuất hiện ở đầu.
  • ---Các số còn lại đặt theo thứ tự giảm dần.

Ví dụ - Nếu mảng đầu vào là:

const arr = [4, 7, 0 ,3, 5, 1, 0];

Sau khi sắp xếp, mảng sẽ thành:

const output = [0, 0, 7, 5, 4, 3, 1];

Sử dụng Array.prototype.sort(). Với sắp xếp giảm dần, lấy hiệu của đối số thứ hai trừ thứ nhất. Nếu giá trị falsy (số 0) thì dùng Number.MAX_VALUE thay thế.

Ví dụ

const arr = [4, 7, 0 ,3, 5, 1, 0]; 
const specialSort = (arr = []) => { 
    const sorter = (a, b) => { 
        return (b || Number.MAX_VALUE) - (a || Number.MAX_VALUE); 
    }; 
    arr.sort(sorter); 
}; 
specialSort(arr); 
console.log(arr);

Kết quả

Điều này sẽ tạo ra đầu ra sau:

[ 
    0, 0, 7, 5, 
    4, 3, 1 
]