TypeError:尝试浏览javascript对象时,无法读取未定义的属性“ 1”

时间:2020-06-11 23:23:59

标签: javascript

我想从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 

1 个答案:

答案 0 :(得分:2)

您的代码:

for(const pathPart in path.split(‘.’))

这会将索引0、1、2放入pathPart中,而不是数组成员中。

在您的for循环中将in切换为of