You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字符串字符与单词统计问题:代码优化及'it'匹配实现

问题解决:字符与单词的次数统计优化

核心问题分析

  • 原代码冗余:靠多个独立数组和重复条件判断实现统计,扩展性极差,新增统计项要改大量代码。
  • 单词it统计失败:原逻辑只遍历单个字符,没法匹配两个字符组成的完整单词,而且没考虑单词边界,就算能匹配也会误抓sit、odit里的it片段。

简洁实现方案

用正则表达式统一处理字符和单词匹配,结合对象存储统计结果,代码简洁还易扩展:

const text = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Culpa, perspiciatis? Reiciendis, facere nobis libero officiis labore sit, deserunt maiores perferendis tempore quas neque odit. Quasi culpa totam aspernatur deserunt nobis.";
// 定义目标项和对应正则:单个字符用全局匹配,单词用单词边界确保匹配完整单词
const targetRegexMap = {
  'a': /a/g,
  'i': /i/g,
  'it': /\bit\b/g
};

const countResult = {};
// 遍历每个目标项,执行匹配并统计次数
for (const [item, regex] of Object.entries(targetRegexMap)) {
  const matchList = text.match(regex);
  countResult[item] = matchList ? matchList.length : 0;
}

// 输出结果
console.log(`字符'a'的出现次数:${countResult.a}`); // 13
console.log(`字符'i'的出现次数:${countResult.i}`); // 24
console.log(`单词'it'的出现次数:${countResult.it}`); // 0(原文本无独立的it单词)

代码说明

  1. 正则设计:
    • 单个字符(如a、i):用/字符/g全局匹配所有出现的该字符。
    • 完整单词(如it):用/\bit\b/g,\b是单词边界,确保只匹配独立的it单词,不会误匹配其他单词里的it片段。
  2. 结果存储:用对象countResult统一存所有统计项的次数,避免多个独立变量的冗余。
  3. 匹配逻辑:text.match(regex)返回所有匹配结果的数组,没匹配到就返回null,用三元表达式处理空值情况。

替代方案(非正则)

如果不想用正则,也可以拆分逻辑实现:

const text = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Culpa, perspiciatis? Reiciendis, facere nobis libero officiis labore sit, deserunt maiores perferendis tempore quas neque odit. Quasi culpa totam aspernatur deserunt nobis.";

// 统计单个字符
const countA = text.split('a').length - 1;
const countI = text.split('i').length - 1;

// 统计完整单词it:先清理标点,拆分单词数组后过滤
const cleanText = text.replace(/[.,?]/g, '');
const words = cleanText.split(' ');
const countIt = words.filter(word => word === 'it').length;

console.log(`字符'a':${countA}`); //13
console.log(`字符'i':${countI}`); //24
console.log(`单词'it':${countIt}`); //0

内容的提问来源于stack exchange,提问作者Fajri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:10:44