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

测试结果如下:

转载请注明出处:http://www.cnblogs.com/callmesummer/p/3938120.html

 拿出手机扫一扫,希望大家能支持一下:

posted @ 2014-08-26 20:11  请叫我Summer  阅读(2148)  评论(0编辑  收藏  举报