首页 > 解决方案 > 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 

标签: javascript

解决方案


你的代码:

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

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

在你的 for 循环中切换in到一个。of


推荐阅读