5 javascript nested object destructuring ecmascript-6
通过解构可以很方便地从Objects 中提取属性:
let o = {id: "100", name: "Jane Doe", address: {id:1, city:"Fargo"}},
key = "address";
let {address: {id: id}} = o; // 1
Run Code Online (Sandbox Code Playgroud)
解构模式也可以计算:
let {[key]: {city: city}} = o; // Fargo
Run Code Online (Sandbox Code Playgroud)
但显然不可能动态提取嵌套对象的属性:
key = "address.city";
({[key]: city} = o); // undefined
Run Code Online (Sandbox Code Playgroud)
是否可以Object使用计算模式解构嵌套的 s?
不,这是不可能的。解构仅适用于您了解其结构的对象。你当然可以这样做
var keys = ["address", "city"];
var {[keys[0]]: {[keys[1]]: city}} = o;
Run Code Online (Sandbox Code Playgroud)
但不适用于任意嵌套的对象。您必须使用递归函数来遍历属性路径。请参阅问题将点表示法中的 JavaScript 字符串转换为对象引用以及许多其他问题。
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |