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

如何统计字符串数组中含指定子串的元素个数?以male统计为例

统计数组中包含male的元素数量

给定数组:

var arr = [ 'male01', 'woman01', 'male02', 'kid01', 'kid02', 'male06'];

需要统计其中包含male的元素数量,预期结果为3。

刚好碰到过类似的需求,给你分享几个实用的JavaScript解法,都能快速得到你想要的结果:

方法1:用filter() + includes()(直观易懂)

这是最容易理解的写法,先过滤出所有包含male的元素,再取过滤后数组的长度:

var arr = [ 'male01', 'woman01', 'male02', 'kid01', 'kid02', 'male06'];
const maleCount = arr.filter(item => item.includes('male')).length;
console.log(maleCount); // 输出:3

filter()会生成一个新数组,只保留满足条件的元素,这里的条件就是元素包含male,最后通过.length直接拿到数量。

方法2:用reduce()累加计数(更高效)

如果不想额外创建新数组,reduce()是更好的选择,直接在遍历过程中累加计数:

var arr = [ 'male01', 'woman01', 'male02', 'kid01', 'kid02', 'male06'];
const maleCount = arr.reduce((count, item) => {
  return item.includes('male') ? count + 1 : count;
}, 0);
console.log(maleCount); // 输出:3

这里把初始计数设为0,每遍历一个元素就判断是否包含male,符合条件就把计数加1,最终得到总数。

方法3:传统for循环(兼容性拉满)

如果需要兼容非常老旧的JavaScript环境(比如不支持ES6语法的浏览器),可以用最基础的for循环:

var arr = [ 'male01', 'woman01', 'male02', 'kid01', 'kid02', 'male06'];
let maleCount = 0;
for (let i = 0; i < arr.length; i++) {
  if (arr[i].includes('male')) {
    maleCount++;
  }
}
console.log(maleCount); // 输出:3

手动初始化计数器,逐个遍历数组元素判断,兼容性最好,适合所有JS运行环境。

小提示

如果需要区分大小写(比如要严格区分Male和male),可以先把元素统一转成小写或大写再判断,比如:

// 统一转小写后判断
item.toLowerCase().includes('male')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:02:19