我想从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
答案 0 :(得分:2)
您的代码:
for(const pathPart in path.split(‘.’))
这会将索引0、1、2放入pathPart
中,而不是数组成员中。
在您的for循环中将in
切换为of
。