首页 > 解决方案 > javascript:检查 Json 上的多个嵌套属性

问题描述

我有一个 JSON,我想检查它是否具有以下属性:

json.prop1.prop2.prop3

这个方法可以检查一个属性:json.hasOwnProperty("prop1")

有什么东西可以用来同时检查所有的 prop1、prop2、prop3 吗?

标签: javascript

解决方案


使用Babel Optional Chaining插件,您可以做到这一点

 json?.prop1?.prop2?.prop3 

这类似于

 json && json.prop1 && json.prop1.props2 && json.prop1.props2.prop3 

使用可选链接的示例

const obj = {
  foo: {
    bar: {
      baz: 42,
    },
  },
};

const baz = obj?.foo?.bar?.baz; // 42

const safe = obj?.qux?.baz; // undefined

// Optional chaining and normal chaining can be intermixed
obj?.foo.bar?.baz; // Only access `foo` if `obj` exists, and `baz` if
                   // `bar` exists

// Example usage with bracket notation:
obj?.['foo']?.bar?.baz // 42


推荐阅读