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

JavaScript如何检查外层数组的所有内层数组中是否存在指定值

多层数组指定值存在性检查的简洁实现

你可以直接用JS数组内置的some方法完成需求,代码更简洁的同时还自带短路优化,匹配到目标值后就会立刻终止遍历,比你原有未做中断的双层循环效率更高:

const target = "Kiwi"
const result = arr.some(item => item.innerArr.some(inner => inner.val === target))

console.log(result) // 存在返回true,不存在返回false

逻辑说明

  • 外层some遍历外层数组的所有元素,只要任意一个元素满足内层判断条件就直接返回true,不会继续遍历剩余元素
  • 内层some遍历每个元素的innerArr数组,只要任意一个元素的val属性等于目标值就返回true
  • 整体逻辑和你原有双层循环的输出结果完全一致,查询"Kiwi"返回true,查询不存在的"Strawberry"返回false

如果需要兼容旧版不支持ES6箭头函数的环境,可以使用ES5的写法:

var target = "Kiwi"
var result = arr.some(function(item) {
  return item.innerArr.some(function(innerItem) {
    return innerItem.val === target
  })
})

内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:05