当前位置: 首页 > article >正文

js统计字符串中每个字符出现的次数

统计字符串中每个字符出现的次数可以使用对象或 Map 来存储字符及其对应的计数。以下是几种常用的方法来实现这一功能。

方法一:使用对象

function countCharacters(str) {
    const count = {};
    
    for (const char of str) {
        count[char] = (count[char] || 0) + 1;
    }
    
    return count;
}

// 示例
const inputString = "hello world";
const result = countCharacters(inputString);
console.log(result);

方法二:使用 Map

Map 提供了更加灵活的方式来存储键值对。

function countCharactersWithMap(str) {
    const count = new Map();
    
    for (const char of str) {
        count.set(char, (count.get(char) || 0) + 1);
    }
    
    return count;
}

// 示例
const inputString = "hello world";
const result = countCharactersWithMap(inputString);
console.log(Object.fromEntries(result)); // 转换为普通对象

方法三:使用 reduce

使用 Array.prototype.reduce 方法可以实现同样的功能,代码更为简洁。

function countCharactersWithReduce(str) {
    return [...str].reduce((count, char) => {
        count[char] = (count[char] || 0) + 1;
        return count;
    }, {});
}

// 示例
const inputString = "hello world";
const result = countCharactersWithReduce(inputString);
console.log(result);

结果示例
对于输入字符串 “hello world”,上面的所有方法都会输出:

{
  "h": 1,
  "e": 1,
  "l": 3,
  "o": 2,
  " ": 1,
  "w": 1,
  "r": 1,
  "d": 1
}

总结
上述代码展示了如何在 JavaScript 中统计字符串中每个字符出现的次数。可以根据实际需求选择合适的方法。对象方法简单易懂,Map 方法更为灵活,而 reduce 方法则是函数式编程的体现。


http://www.kler.cn/news/326568.html

相关文章:

  • Python | Leetcode Python题解之第440题字典序的第K小数字
  • 【DP解密多重背包问题】:优化策略与实现
  • Iptables,ufw,firewalld的关系与区别
  • 大语言模型(LLM)的子模块拆拆分进行联邦学习;大语言模型按照多头(Multi-Head)拆分进行联邦学习
  • pdf转换成word有哪些方法?10种将PDF转成word的方法
  • 搜维尔科技:5DT数据手套超高的数据质量、较低的交叉关联、高数据频率
  • VUE 开发——AJAX学习(一)
  • 群晖安装Audiobookshelf(有声书)
  • YOLOv11改进 | Neck篇 | YOLOv11引入BiFPN双向特征金字塔网络
  • 项目管理专业资质认证ICB 3中关于项目经理素质的标准
  • FreeRTOS调度器与任务
  • HTML初认识 -- 第二课(全网最好的入门课)
  • el-cascader懒加载回显问题
  • 这 5 个自动化运维场景,可能用 Python 更香?
  • 【工程测试技术】第3章 测试装置的基本特性,静态特性和动态特性,一阶二阶系统的特性,负载效应,抗干扰性
  • Python知识点:如何使用Flink与Python进行实时数据处理
  • Docker快速搭建PostgreSQL15流复制集群
  • 端模一体,猎豹移动对大模型机器人发展路径清晰
  • 每天认识几个maven依赖(ant)
  • dea插件开发-自定义语言9-Rename Refactoring
  • 【以图搜图代码实现2】--faiss工具实现犬类以图搜图
  • mips指令系统简介
  • AI大模型面试大纲
  • 基于单片机的催眠电路控制系统
  • [云服务器15] 全网最全!手把手搭建discourse论坛,100%完成
  • 什么是 Apache Ingress
  • 钉钉H5微应用Springboot+Vue开发分享
  • win11下 keil报错Cannot load driver ‘D:\Keil_v5\ARM\Segger\JL2CM3.dll‘
  • WAF,全称Web Application Firewall,好用WAF推荐
  • 小巧机身,但强劲动力实现千元级净须,未野迷你剃须刀测评