按照數字頻率升序排列 JavaScript 陣列
我們需要編寫一個 JavaScript 函式,該函式採用一個數組,該陣列可能包含一些重複的數字。
該函式應按如下方式對陣列進行排序:出現次數最少的元素應排在第一位,然後是出現頻率增加的元素。
例如 -
如果輸入陣列為 -
const arr = [1,1,2,2,2,3];
則經過排序後的陣列應為 -
const output = [3,1,1,2,2,2];
示例
const arr = [1, 1, 2, 2, 2, 3]; const frequencySort = (arr = []) => { let map = {}; for (let i = 0; i < arr.length; i++) { map[arr[i]] = (map[arr[i]] || 0) + 1; }; return arr.sort((a,b) => map[a] - map[b] || b - a); }; frequencySort(arr); console.log(arr);
輸出
輸出結果如下 -
[ 3, 1, 1, 2, 2, 2 ]
廣告