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

如何使用forEach遍历嵌套数组并统计指定元素的出现次数

问题原因

你的items是二维嵌套数组,直接调用外层forEach遍历得到的每一项v是内层的子数组(比如首次遍历得到的是["a","b"]),不可能和字符串"a"相等,所以判断条件永远不触发,没有输出。

可行解决方案

  • 方案1:嵌套遍历两层数组
let items = [["a","b"],["c","a"],["b","a"]];
// 外层遍历拿到每个子数组
items.forEach(subArr => {
  // 内层遍历子数组的每个元素
  subArr.forEach(item => item === "a" && console.log(item))
})
  • 方案2:先拍平数组再遍历
    用数组flat()方法先把二维数组转为一维数组,再统一遍历判断:
let items = [["a","b"],["c","a"],["b","a"]];
items.flat().forEach(item => item === "a" && console.log(item))

如果存在更深层级的嵌套(比如三维、四维数组),可以给flat传入Infinity参数,会把所有层级的嵌套都拍平为一维数组:

// 适配任意深度嵌套的通用写法
let items = [["a","b"],["c",["a",["e","a"]]],["b","a"]];
items.flat(Infinity).forEach(item => item === "a" && console.log(item))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:18:03