繁体   English   中英

使用 ES6 销毁对象

[英]Object destructing using ES6

我有这个嵌套对象,它也包含一个数组。

result:{
"a": [{ "b": { "c": 1,
               "d": 2,
               "e": 3
              },
        "f": 0
      }]
}

如果我需要 d 的值,如何使用 ES6 解构这个对象?

对象解构符号就像对象文字符号一样,只是在等号的另一边。 所以你写的正是你要写的,只为d创建必要的结构,并将你的d变量/常量名称放在那里。

看起来您正在向我们展示对象的内容(例如,它有一个名为result的属性),因此:

 const obj = { result: { "a": [{ "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }] } }; const { result: { "a": [{ "b": { d } }] } } = obj; console.log(d);

我并不是说我会在这里使用解构。 事实上,我可能不会。 但是你可以 :-)

如果result是包含对象的变量,只需删除该层:

 const obj = { "a": [{ "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }] }; const { "a": [{ "b": { d } }] } = obj; console.log(d);

当然,这就是把你按面值的问题,你想d第一个条目a 您可以将其概括为这样获得条目n (我又回到假设result是对象的一部分):

 const obj = { result: { "a": [ { "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }, { "b": { "c": 1, "d": 4, // *** "e": 3 }, "f": 0 } ] } }; const n = 1; // Which entry in `a` to get const { result: { "a": { [n]: { "b": { d } } } } } = obj; console.log(d);

我使用的对象解构为a而不是阵列解构,用计算出的属性名称。 我可以这样做,因为数组是对象。


数组解构符号就像数组文字符号一样。 :-)

你想要 d 的值吗?

result.a[0].b.d ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM