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

Sắp xếp các số theo thứ tự giảm dần nhưng có chữ `0` ở đầu JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số. Hàm sẽ sắp xếp mảng số theo các tiêu chí sau -

  • --- Nếu mảng chứa bất kỳ số 0 nào, tất cả chúng sẽ xuất hiện ở đầu.
  • --- Tất cả các số còn lại nên được xếp 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 đó, sau khi áp dụng sắp xếp, mảng sẽ trở thành -

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

Chúng tôi sẽ sử dụng phương thức Array.prototype.sort () tại đây.

Đối với sắp xếp theo thứ tự giảm dần, chúng ta sẽ lấy sự khác biệt của đối số thứ hai của hàm sắp xếp so với đối số đầu tiên. Và nếu bất kỳ giá trị nào là sai (không) thì chúng tôi sẽ sử dụng Number.MAX_VALUE thay cho giá trị đó.

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

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