javascript自定义排序功能,将发生率较低的位置排在首位

时间:2019-06-11 19:00:13

标签: javascript sorting

需要为数组创建自定义排序-

-按频率第一个单独的数字 ---频率为1的子集号 ---频率为2的子集数量

部分排序的数据-关于频率的升序 -然后我们以非降序对具有相同频率的元素的每个子集进行排序

function cSort(arr) {
    if(typeof arr !== "undefined") {
        arr.sort(function(a, b) {
          return a - b;
        });

        return arr
    }
}

需要满足测试用例

-测试1 输入 [5、3、1、2、2、4] 输出 [1、3、4、2、2]

-测试2 输入 [10,8,5,5,5,5,1,1,1,4,4] 输出 [8,4,4,1,1,1,5,5,5,5]

- 当前jsfiddle 1 http://jsfiddle.net/6mekdn8h/

新提琴2 http://jsfiddle.net/6mekdn8h/1/

1 个答案:

答案 0 :(得分:2)

您可以对每个项目的出现次数进行排序。

var array = [5, 3, 1, 2, 2, 4].slice(1),
    hash = array.reduce((h, v, i) => (h[v] = (h[v] || 0) + 1, h), {});

array.sort((a, b) => hash[a] - hash[b] || a - b);

console.log(array);

相关问题