Sort a Javascript Array by frequency and then filter repeats

前端 未结 8 1803
南笙
南笙 2020-12-13 07:06

What is an elegant way to take a javascript array, order by the frequency of the values, and then filter for uniques?

So,

[\"apples\", \"oranges\", \"o

8条回答
  •  青春惊慌失措
    2020-12-13 08:02

    var arr = ["apples", "oranges", "oranges", "oranges", "bananas", "bananas", "oranges"].sort();
    var freq = {};
    for (var s in arr) freq[s] = freq[s] ? freq[s] + 1 : 0;
    arr.sort(function(a, b) { return freq[a] > freq[b] ? -1 : 1; });
    for (var i = arr.length - 1; i > 0; i--) if (arr[i] == arr[i - 1]) arr.splice(i,1);
    alert(arr.join(","));
    

提交回复
热议问题