当前位置: 首页 > 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/a/326568.html

相关文章:

  • 云手机 —— 手机矩阵的 “超级外挂
  • Git revert回滚
  • 前后端环境配置java/vue/maven/node.js/mysql
  • 解决ESP32 wifi scan:1. 获取WIFI扫描列表个数为0 的问题 2.扫描WIFI列表时导致程序崩溃问题。
  • CSS 学习之正确看待 CSS 世界里的 margin 合并
  • 【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?
  • 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