无法正确访问JSON数组元素,求问题原因与解决方法
问题:访问JSON数组元素时返回undefined的原因及解决方法
你的问题出在把数组当成单个对象来访问属性了。从控制台输出能看到,json_array是一个包含3个对象的数组,每个数组元素才是带有对应属性的独立对象,而数组本身并没有title、requester、none这些属性,所以直接用json_array.title这类写法会返回undefined。
解决方法:
1. 通过数组索引访问对应元素的属性
直接定位到数组里的具体元素,再获取其属性:
json_array = JSON.parse(data); console.log(json_array[0].requester); // 输出 false console.log(json_array[1].title); // 输出 false console.log(json_array[2].none); // 输出 true
2. 合并数组元素为单个对象(按需使用)
如果你希望直接通过属性名访问值,可以把数组里的所有对象合并成一个单独的对象(注意:如果多个元素有重复属性,后面的会覆盖前面的):
json_array = JSON.parse(data); const mergedObject = json_array.reduce((result, current) => { return {...result, ...current}; }, {}); console.log(mergedObject.title); // 输出 false console.log(mergedObject.requester); // 输出 false console.log(mergedObject.none); // 输出 true
内容的提问来源于stack exchange,提问作者Wt Riker
相关产品推荐
相关产品推荐

