[英]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.