首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用反射ES6获取子属性

使用反射ES6获取子属性
EN

Stack Overflow用户
提问于 2019-06-12 13:57:11
回答 1查看 49关注 0票数 0

希望在JSON文件中检查是否存在像objecta.objectb.objectc这样的完整路径。第一个想法是对一个对象进行JSON解析,然后使用反射检查是否存在属性,但是当我按下面的方式尝试时,它将不允许我访问属性键中的子元素?

我遗漏了什么?

代码语言:javascript
复制
const object1 = {
  property1: 42,
  property2 : {
        property2a: "abc"
    },
};

console.log(Reflect.has(object1, 'property1'));
// expected output: true

console.log(Reflect.has(object1, 'property2.property2a'));
// expected output: true but is false
console.log(object1.property2.property2a);
// prints value as expected
console.log(Reflect.has(object1, 'property3.property2a'));
// expected output: false
console.log(Reflect.has(object1, 'toString'));
// expected output: true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-12 14:01:18

你不应该在这里使用Reflect。相反,您应该使用多个条件语句来检查它是否存在,否则返回false:

代码语言:javascript
复制
const object1 = {
  property1: 42,
  property2 : {
        property2a: "abc"
    },
};

console.log(object1 && object1.property2 && object1.property2.property2a ? true : false)
console.log(object1 && object1.property2 && object1.property2.property2b ? true : false)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56563963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档