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

JavaScript字符串练习题之题6补充

标签:
JavaScript

之前在看这篇名为“JavaScript字符串练习之实现”时,动手试了一下各个方法,发现题目6的解法得不到想要的结果,也不太理解其解题思路,遂自己上网找了两个解法,以防自己忘记,记下以当笔记,若有人看到此文,有更好的解法,希望您能与大家分享。


方法一:
用正则匹配将各个字符从字符串中替换掉,直接用正则匹配的match().length获取每个字符出现的次数

function charCount(str) {

        str = str.replace(/\s/ig, "");//去除空格
        var strArr = str.split("");
        var result = [],reg;
        for (var i = 0; i < strArr.length; i++) {
            if (str.indexOf(strArr[i]) != -1) {
                reg = new RegExp(strArr[i], "ig");
                counts=str.match(reg).length;
                str = str.replace(reg, "");
                result.push(strArr[i] + ": " + counts);
            }
        }
        return result;
    }

方法二:
用正则匹配将各个字符从字符串中替换掉,替换前字符串长度-替换后字符串长度,差值即为该字符出现的次数!

function charCount(str) {

        str = str.replace(/\s/ig, "");//去除空格
        var strArr = str.split("");
        var result = [],beforeLength, afterLength, reg;
        for (var i = 0; i < strArr.length; i++) {
            if (str.indexOf(strArr[i]) != -1) {
                beforeLength = str.length;
                reg = new RegExp(strArr[i], "ig");
                str = str.replace(reg, "");
                afterLength = str.length;
                result.push(strArr[i] + ": " + (beforeLength - afterLength));
            }
        }
        return result;
    }
点击查看更多内容
8人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消