如何访问JSON文件中数组内嵌套对象的键并判断值是否相等
问题解决
报错根因
你定义的data是数组类型,第一层需要先通过数组下标访问到内部的对象,才能继续读取items属性。原写法直接访问data.items相当于在数组实例上查找不存在的items属性,得到undefined,后续访问undefined[0]就会直接抛出异常。
正确实现代码
var data = [ { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] }]; // 先取数组第0项,再访问items属性 console.log(data[0].items[0].name === 'foo'); // 运行输出 true
容错优化写法
如果不能保证每一层级的属性、数组下标都一定存在,可以用可选链操作符避免层级缺失时报错:
// 任意层级不存在时表达式结果为false,不会抛出异常 console.log(data?.[0]?.items?.[0]?.name === 'foo');
内容的提问来源于stack exchange,提问作者Vikram
相关产品推荐
相关产品推荐

