【问题标题】:ES2015 (ES6) sub destructuringES2015(ES6)子解构
【发布时间】:2016-11-22 11:03:39
【问题描述】:
我对 Javascript 中的解构有疑问,例如我有这个对象结构:
let obj = {
subObj: {
id: 123,
otherProp: 'value'
}
};
这种解构模式是否可能:
let { subObj: { id } } = obj
let someId = id;
let otherObj = subObj //this is not working
我想在一次操作中获取子对象和子对象中的属性。我看过这个资源2ality,但找不到答案。
【问题讨论】:
标签:
javascript
ecmascript-6
destructuring
【解决方案1】:
我想在一次操作中获取子对象和子对象中的一个属性
你可以这样做:
let {subObj : {id}, subObj} = obj;
// ^^^^^^^^^^^^^ ^^^^^^
// \ \----- grabs subObj
// \---------------- grabs id
其他顺序也可以:
let {subObj, subObj : {id}} = obj;
// ^^^^^^ ^^^^^^^^^^^^^
// \ \--------- grabs id
// \------------------- grabs subObj
例子:
let obj = {
subObj: {
id: 123,
otherProp: 'value'
}
};
// Grabs subObj ----vvvvvv
let {subObj : {id}, subObj} = obj;
// ^^^^^^^^^^^^^---grabs id
console.log(subObj);
console.log(id);