数组中出现次数最多/最少的元素

来源:互联网 发布:vps绑定域名 编辑:程序博客网 时间:2024/05/22 04:55

先说一下思路吧 首先定义一个对象 然后遍历数组 对象的key用于存放数组的元素 val用于存放元素出现的次数
看一下代码吧

    var arr = [1,1,2,2,2,2,2,3,3,3,4,4];    var obj = {};    for(var i = 0; i<arr.length; i++){        if(!obj[arr[i]]){            obj[arr[i]] = 1;        }else {            obj[arr[i]]++;        }    }    /*        此时的obj对象包含了所有元素出现次数的信息        然后再遍历obj对象就可以查询出出现次数最多/最少的元素了    */    var maxNum = 0;    var minNum = obj[arr[0]];  //先随意给最少的变量赋值(但保证是数组中的元素出现的次数)    var maxEleArr = [],minEleArr = [];    //第一次遍历找出出现次数最多和最少的值    for(var key in obj){        if(obj[key] > maxNum){            maxNum = obj[key];        }        if(obj[key] < maxNum){            minNum = obj[key];        }    }    //第二次遍历找出所有出现次数最多和最少的元素    for(var key in obj){        if(obj[key] == maxNum){            maxEleArr.push(key);        }        if(obj[key] == minNum){            minEleArr.push(key);        }    }    console.log(maxEleArr + ":" + maxNum );    console.log(minEleArr + ":" + minNum );
0 0
原创粉丝点击