当前位置:  开发笔记 > 编程语言 > 正文

解构深层属性

如何解决《解构深层属性》经验,为你挑选了1个好方法。

我最近开始使用ES6的解构赋值语法,并开始熟悉这个概念.我想知道是否可以使用相同的语法提取嵌套属性.

例如,假设我有以下代码:

let cagingIt = {
  foo: {
    bar: 'Nick Cage'
  }
};

我知道我可以foo通过执行以下操作来访问变量:

// where foo = { bar: "Nick Cage" }
let { foo } = cagingIt;

但是,是否可以提取深层嵌套的属性,如bar.也许是这样的:

// where bar = "Nick Cage"
let { foo[bar] } = cagingIt;

我试图找到有关此事的文件,但无济于事.任何帮助将不胜感激.谢谢!



1> Dom..:

有一种方法可以使用这种语法处理嵌套对象和数组.鉴于上述问题,解决方案如下:

let cagingIt = {
      foo: {
        bar: 'Nick Cage'
      }
    };
let { foo: {bar: name} } = cagingIt;

console.log(name); // "Nick Cage"

在此示例中,foo指的是属性名称"foo".在冒号之后,我们然后使用bar它指的是属性"bar".最后,name充当存储值的变量.

至于数组解构,你会像这样处理它:

let cagingIt = {
      foo: {
        bar: 'Nick Cage',
        counts: [1, 2, 3]
      }
    };

let { foo: {counts: [ ct1, ct2, ct3 ]} } = cagingIt;
console.log(ct2); // prints 2

它遵循与对象相同的概念,只是您可以使用数组解构并存储这些值.

希望这可以帮助!


考虑到解构不是零安全的,因此使用这种方式存在风险.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有