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

如何遍历JavaScript对象属性,验证嵌套子对象是否存在指定id属性

实现方案

你之前的方法失效核心是误操作了对象的键名字符串,而非键对应的实际子对象,按照以下逻辑实现即可:

1. 检查单个子对象是否存在id键

先判空再调用hasOwnProperty,避免空值报错:

// 拿示例中的flight1对象举例
const flight1 = formik.values.flight1
// 先判断目标是不是对象类型且非空,再检查是否存在id键
const hasId = typeof flight1 === 'object' && flight1 !== null && flight1.hasOwnProperty('id')
console.log(hasId) // 输出true

2. 批量遍历所有航班子对象检查id、统计数量

如果要遍历formik.values下的所有航班子对象:

// 先拿到values下所有子对象的集合,不要拿键名
const flightList = Object.values(formik.values)
// 统计包含id的子对象数量
const hasIdCount = flightList.filter(item => {
  return typeof item === 'object' && item !== null && item.hasOwnProperty('id')
}).length

console.log('包含id的子对象数量:', hasIdCount)
// 遍历输出每个子对象的检查结果
flightList.forEach((item, index) => {
  const hasId = item.hasOwnProperty('id')
  console.log(`第${index+1}个航班是否有id:`, hasId)
})

3. 统计父对象下的子对象总数量

直接用Object.keys()拿父对象的所有键名再算长度,不要直接对父对象取.length:

// 统计formik.values下的子对象总个数
const flightTotal = Object.keys(formik.values).length
console.log('航班总数量:', flightTotal) // 输出4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:54:06