javascript - 关于某字符在字符串中出现的次数统计,网上看到一段代码其中有个地方看不懂什么意思

查看:103
本文介绍了javascript - 关于某字符在字符串中出现的次数统计,网上看到一段代码其中有个地方看不懂什么意思的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天自己用 split()方法实现了统计某字符在字符串中出现的次数,顺便又百度了一下,看看有没有其它方法,结果看到下面这段函数,但其中的count++; offset += subStr.length;有点看不明白是什么意思,请路过的前辈解惑!

function countInstances (mainStr, subStr) {
    var count = 0;
    var offset = 0;
    do{
        offset = mainStr.indexOf(subStr, offset); // 通过indexOf获得某字符在字符串中出现的位置
        if( offset != -1 ) { // 如果某字符存在于字符串中
            count++;
            offset += subStr.length;
        }
    } while ( offset != -1 );
    return count;
}
countInstances('www.segmentfault.com', '.')
// alert( countInstances('www.segmentfault.com', '.') );

这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义

解决方案

indexOf用法
count++; offset += subStr.length;
count表示的是计数器,记下字符出现的次数
offset赋值给 indexOf的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
offset找到了,就count+1,再从offset += subStr.length的位置开始找,因为indexOf只能判断最初找到子字符串的索引。。
我好像说的有的复杂,其实很简单的,你在纸上画下执行过程就知道了

这篇关于javascript - 关于某字符在字符串中出现的次数统计,网上看到一段代码其中有个地方看不懂什么意思的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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