为了账号安全,请及时绑定邮箱和手机立即绑定

数组查找统计

数组查找统计

心有法竹 2018-12-20 18:14:41
var a = [ 'ping','ewewe','w','js','windvane' ,'ping'];如何把数组出现大于一次的item提取出来,并注明它出现的次数
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

https://img1.sycdn.imooc.com//5c2dcb92000151e703680318.jpg

返回的数组中,count为出现的次数,el代表元素。代码在下面,我之前也有写过这样的文章,你可以参考下。
编写自己的代码库(javascript常用实例的实现与封装)

//arr, rank->长度,默认为数组长度,ranktype,排序方式,默认降序

function getCount(arr, rank,ranktype){ 

    var obj = {}, k, arr1 = []

    //记录每一元素出现的次数

    for (var i = 0, len = arr.length; i < len; i++) {

        k = arr[i];

        if (obj[k]) {

            obj[k]++;

        }

        else {

            obj[k] = 1;

        }

    }

    //保存结果{el-'元素',count-出现次数}

    for (var o in obj) {

        arr1.push({el: o, count: obj[o]});

    }

    //排序(降序)

    arr1.sort(function (n1, n2) {

        return n2.count - n1.count

    });

    //如果ranktype为1,则为升序,反转数组

    if(ranktype===1){

        arr1=arr1.reverse();

    }

    var rank1 = rank || arr1.length;

    return arr1.slice(0,rank1);

}


查看完整回答
反对 回复 2019-01-03
  • 1 回答
  • 0 关注
  • 447 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号