龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

javascript 统计、去除重复字符

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
分享几种javascript 统计、去除重复字符的方法,这里主要是对数组进行操作,有需要的朋友可以仔细的参考一下哦。 /**//* 功能:统计、去除重复字符 @param str 需要统计的字符串 说明:常
分享几种javascript 统计、去除重复字符的方法,这里主要是对数组进行操作,有需要的朋友可以仔细的参考一下哦。

/**//*  
    功能:统计、去除重复字符
    @param str 需要统计的字符串
    说明:常用于字符串中重复字符,或者数组中重复的字母、数字等个数统计。
        此处从网上收集两种典型的类型,分别有两种实现方法,其他还有许多变种,从不同角度编写,可搜索学习。
       
        待统计的数据,不论是数组和字符串都可以,只用借助String.split()或 Array.join()
            转换为函数参数要求的类型即可。
*/  

// 类型一:借助新建对象来保存数据

 代码如下

var count1 = function (str) {
    var map = {}, maxCount = 0, maxChar, undefined, i = str.length;
    while (i--) {
        var t = str.charAt(i);
        map[t] == undefined ? map[t] = 1 : map[t] += 1;
        if (map[t] > maxCount) {
            maxChar = t;
            maxCount = map[maxChar];
        }
    }
    return "字符:" + maxChar + "次数:" + maxCount;
}

function s_0(a) { // 此处参数应为数组类型
    var b = {}, c = [], i;
    for (i = 0; i < a.length; i++){
        if (!b[a[i]]) {
            c[c.length] = a[i], b[a[i]] = true;
        }
    }
    return c;
}

// 类型二:正则表达式匹配统计

 代码如下

var count2 = function (str) {
    var most = str.split('').sort().join('').match(/(.)1*/g); //排列重复字符
    most = most.sort(function (a, b) { return a.length - b.length }).pop(); //按出现频繁排序
    return most.length + ': ' + most[0];
}

function s_1(a) {
    var a = a.join(""), b = [];
    while (a.length > 0)
            a = a.replace(new RegExp((b[b.length] = a.charAt(0)), "g"), "");
    return b;
}


精彩图集

赞助商链接