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

如何判断JavaScript数组中指定元素是否达到指定出现次数?

数组元素统计与条件判断实现

给定数组:

var array = ["A", "A", "A", "B", "B", "A", "C", "B", "C"];

要实现两个判断需求:

  • 检查数组中是否恰好有4个"A",满足则返回true
  • 检查数组中是否同时有3个"B"和2个"C",满足则返回true,否则返回false

方法一:使用filter()统计元素数量

filter()可以筛选出目标元素,再通过length属性直接得到数量,写法简洁直观:

// 统计各元素数量
const countA = array.filter(item => item === "A").length;
const countB = array.filter(item => item === "B").length;
const countC = array.filter(item => item === "C").length;

// 判断条件1:恰好4个A
const condition1 = countA === 4;
// 判断条件2:3个B且2个C
const condition2 = countB === 3 && countC === 2;

console.log(condition1); // 输出 true
console.log(condition2); // 输出 true

方法二:使用reduce()统计元素数量

reduce()可以遍历数组并累计计数,适合需要统计多种元素的场景,只需遍历一次数组,性能更优:

const countMap = array.reduce((acc, current) => {
  // 累计当前元素的数量,不存在则初始化为1
  acc[current] = (acc[current] || 0) + 1;
  return acc;
}, {}); // 初始值为空对象,用于存储元素-数量映射

// 判断条件
const condition1 = countMap.A === 4;
const condition2 = countMap.B === 3 && countMap.C === 2;

console.log(condition1); // 输出 true
console.log(condition2); // 输出 true

说明

两种方法都能精准统计数组中指定元素的出现次数,替代只能判断存在性的includes()。如果仅需统计单个元素,filter()写法更简洁;如果需要统计多个元素,reduce()的性能表现更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:45:30