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

Sắp xếp mảng số theo tần suất tăng dần trong JavaScript


Cần viết hàm JavaScript nhận mảng số có thể chứa số lặp. Hàm sắp xếp mảng sao cho phần tử lặp ít nhất xuất hiện trước, theo sau là phần tử với tần suất tăng dần.

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

const arr = [1,1,2,2,2,3];

Mảng đã sắp xếp:

const output = [3,1,1,2,2,2];

Ví dụ

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

Kết quả

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

[ 3, 1, 1, 2, 2, 2 ]