将数组按照值出现的次数排序

// 将数组按照值出现的次数排序
let sortByCount = function (arr) {
    let arrUni = [];
    let arrCnt = [];
    arr.forEach((val)=>{
        let idx = arrUni.indexOf(val);
        if (idx<0) {
            arrUni.push(val);
            arrCnt.push(1);
        }else{
            arrCnt[idx]++;
        }
    });
    let arrTmp = arrUni.slice();
    arrUni.sort((a, b)=>{
        let idxa = arrTmp.indexOf(a);
        let idxb = arrTmp.indexOf(b);
        return arrCnt[idxb] - arrCnt[idxa];
    });
    return arrUni;
};
阅读 2.1k发布于 2016-11-29
推荐阅读
王道中强流
用户专栏

不为繁华易匠心

9 人关注
32 篇文章
专栏主页
目录