我有这个嵌套对象,它也包含一个数组。
result:{
"a": [{ "b": { "c": 1,
"d": 2,
"e": 3
},
"f": 0
}]
}
如果我需要d值,如何使用ES6对该对象进行解构?
答案 0 :(得分:5)
对象解构符号就像对象文字符号一样,位于等号的另一侧。因此,您只编写了要创建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
的 first 条目中选择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
进行结构分解,而不是使用具有计算出的属性名称的数组结构分解。我可以这样做是因为数组是对象。
数组解构符号也和数组文字符号一样。 :-)
答案 1 :(得分:-7)
您想要d的值吗?
result.a[0].b.d ?