javascript - TypeError:尝试导航 javascript 对象时无法读取未定义的属性“1”
问题描述
我想从 Javascript 对象中定位和提取数据。
对象是:
let object = { a: 2, b: { c: "x", d: [1, { e: 3 }] } };
我想得到{e : 3}
对象
如果我做:
object = object['b']; // Result is { c: "x", d: [1, { e: 3 }] }
object = object['d']; // Result is [1, { e: 3 }]
object = object['1']; // Result is { e : 3 }
但是,如果我这样做
let object = { a: 2, b: { c: "x", d: [1, { e: 3 }] } };
const path = 'b.d.1';
for(const pathPart in path.split('.')) {
object = object[pathPart];
console.log(`object = ${object}`);
console.log(`pathPart = ${pathPart}`);
}
我得到:
TypeError: Cannot read property '1' of undefined
解决方案
你的代码:
for(const pathPart in path.split(‘.’))
这会将索引 0、1、2 放入 中pathPart
,而不是数组成员。
在你的 for 循环中切换in
到一个。of
推荐阅读
- .net - 当前上下文中不存在名称“ConfigureNinject”
- firebase - 如何在 react-native-firebase 上集成 react-native-fcm
- reactjs - 当 TextInput 获得焦点时,按两次以使按钮工作
- javascript - gmail脚本搜索和自动删除邮件
- button - 如何修改交互式网格上的“保存”操作
- azure-active-directory - 用于读取生日和入职日期的 Microsoft graph api 权限
- java - 如何在java中进行rest api调用并映射响应对象?
- python - Flask 后端没有响应 JS 前端
- python - 如果同一元素在数据框中出现两次?
- jquery - Fullcalendar - 3 天视图