如何根据嵌套JSON对象指定template id提取对应同级assets字段值
你的写法错误原因是:JavaScript 数组的方括号索引仅支持传入数字、字符串格式的属性名,无法直接传入条件表达式自动匹配符合要求的元素。
你可以直接用 JS 原生数组方法实现需求,不需要额外引入 JSON Expression 相关工具:
单匹配场景(id唯一)
使用Array.find()方法,返回第一个匹配id的模板项:
const targetId = '210537' const targetTemplate = data.data.templates.find(item => item.id === targetId) // 增加非空判断避免未找到数据时报错 if (targetTemplate) { const assets = targetTemplate.assets // 后续处理assets的逻辑 }
多匹配场景(存在重复id)
如果可能存在多个同id的模板,用Array.filter()返回所有匹配项组成的数组:
const targetId = '210537' const targetTemplates = data.data.templates.filter(item => item.id === targetId) targetTemplates.forEach(item => { console.log(item.assets) })
内容的提问来源于stack exchange,提问作者StevenHolder
相关产品推荐
相关产品推荐

