混合解构
对象与数组解构能被用在一起,以创建更复杂的解构表达式。在对象与数组混合而成的结构中,这么做便能准确提取其中你想要的信息片段。例如:
let node = {
type: "Identifier",
name: "foo",
loc: {
start: {
line: 1,
column: 1
},
end: {
line: 1,
column: 4
}
},
range: [0, 3]
};
let {
loc: { start },
range: [ startIndex ]
} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex); // 0
此代码将 node.loc.start
与 node.range[0]
提取出来,并将它们的值分别存储到 start
与 startIndex
中。要记住解构模式中的 loc:
与 range:
只是对应于 node
对象中属性的位置。混合使用对象与数组解构,node
的任何部分都能提取出来。对于从 JOSN
配置结构中抽取数据来说,这种方法尤其有用,因为它不需要探索整个结构。