JS统计字符串中某个字符出现的次数

935 阅读1分钟
  /**

        *

        * @param {*} str 传入的字符串

        * @param {*} filed 字符串中的某个字符

        * @param {*} needCaseSensitive 是否区分大小写 默认不区分

        * @returns

  */ 
  const countOccurrent = (str, filed, needCaseSensitive = false) => {
        //1. 先将str, 以及 字符串 转换成小写
        // 不区分大小写的情况

        if (!needCaseSensitive) {

            str = str.toLocaleLowerCase();
            filed = filed.toLocaleLowerCase();
        }

        //2. 定义一个 控对象
        let emptyObj = {};

        //3. 遍历我们的字符串

        for (let cxt of str) {
            // 4. 核心思路 判断对象中是否存在这个 键值对
            // 如果存在 就在原来的基础上 +1
            // 如果不存在 就创建一个并且默认值设为 1
            emptyObj[cxt] = emptyObj[cxt] ? ++emptyObj[cxt] : (emptyObj[cxt] = 1);
        }
        // 5. 将结果返回
        
        return emptyObj[filed];

} 
test_demo:
const str = 'hello';
const eLength = countOccurrent(str, 'l')  
eLength => 2