javascript - 数组查找统计

查看:91
本文介绍了javascript - 数组查找统计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var a = [ 'ping','ewewe','w','js','windvane' ,'ping'];

如何把数组出现大于一次的item提取出来,并注明它出现的次数

解决方案

返回的数组中,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);
}

这篇关于javascript - 数组查找统计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆