如何访问对象中的嵌套子键并遍历onSelect属性下的yes数组
你无法访问obj.candidateApplication.onSelect.yes的核心原因是忽略了两层数组的下标引用规则:
candidateApplication字段本身是数组类型,要访问数组内第一个元素的属性,需要先加[0]指定下标onSelect字段同样是数组类型,数组内第一个元素才是包含yes字段的目标对象,也需要加[0]指定下标
正确访问方式
直接访问yes数组的写法为:obj.candidateApplication[0].onSelect[0].yes
遍历示例(JavaScript环境)
为了避免字段不存在引发报错,建议搭配可选链和数组类型判断使用:
// 安全获取yes数组 const yesList = obj.candidateApplication[0]?.onSelect?.[0]?.yes // 确认是数组后再执行遍历 if (Array.isArray(yesList)) { yesList.forEach(item => { // 此处写你的遍历逻辑,比如获取字段值 console.log('字段label:', item.label) console.log('字段id:', item.id) }) }
如果你的场景是已经在外层遍历了candidateApplication数组,写法调整为:
obj.candidateApplication.forEach(appItem => { // 原逻辑访问list数组正常 console.log('list数组:', appItem.list) // 对应访问yes数组的写法 const yesList = appItem.onSelect?.[0]?.yes if (Array.isArray(yesList)) { yesList.forEach(yesItem => { // 子层级遍历逻辑 }) } }
内容的提问来源于stack exchange,提问作者Usman Altaf
相关产品推荐
相关产品推荐

