JavaScript 降序排列數字,但將 0 置於開頭


我們需要編寫一個 JavaScript 函式,該函式接收一個數字陣列作為輸入。該函式應根據以下條件對數字陣列進行排序:

  • ---如果陣列包含任何零,則所有零都應出現在開頭。
  • ---所有剩餘數字應按遞減順序排列。

例如:

如果輸入陣列是:

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

則應用排序後,陣列應變為:

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

這裡我們將使用 Array.prototype.sort() 方法。

對於降序排序,我們將從 sort 函式的第一個引數中減去第二個引數。如果任何值為假值(零),我們將使用 Number.MAX_VALUE 代替該值。

示例

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

輸出

這將產生以下輸出:

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

更新於:2020年11月25日

422 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.