js数组去重,并统计最多项算法

从事了一段时间的前端开发,今天写了一个数组去重,并统计最多项的方法,目前只支持数组的项都是数字。

由于本人能力有限,希望能得到网友的指正!如有问题或者更好的实现思路,也欢迎大家和我讨论!代码如下:

function getMax(arr){
    var obj = {},
        l = arr.length,
        key = [],
        val = [];
    for(var i = 0;i<l;i++){
        !obj[arr[i]] ? obj[arr[i]] = 1 : obj[arr[i]] += 1;
    }
    for(i in obj){
        key.push(i);
        val.push(obj[i]);
    }
    var max = Math.max.apply("",val);
    var pos = (function(){
        var j , len = val.length;
        for(j=0;j<len;j++){
            if(max == val[j]){
                return j;
            }
        }
    })();
    console.log("出现最多的项是:"+key[pos]+",出现次数为:"+val[pos])
}

var arr = [1,2,3,4,4,1,1];

getMax(arr);

测试结果如下:

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。