巢狀解構
我們不僅限於解構物件/陣列,我們可以構造一個巢狀的物件/陣列。
巢狀物件解構
var obj = {
a: {
c: 1,
d: 3
},
b: 2
};
var {
a: {
c: x,
d: y
},
b: z
} = obj;
console.log(x, y, z); // 1,3,2
巢狀陣列解構
var arr = [1, 2, [3, 4], 5];
var [a, , [b, c], d] = arr;
console.log(a, b, c, d); // 1 3 4 5
解構不僅限於單一模式,我們可以在其中包含 n 級巢狀。類似地,我們可以用物件來構造陣列,反之亦然。
物件中的陣列
var obj = {
a: 1,
b: [2, 3]
};
var {
a: x1,
b: [x2, x3]
} = obj;
console.log(x1, x2, x3); // 1 2 3
陣列中的物件
var arr = [1, 2 , {a : 3}, 4];
var [x1, x2 , {a : x3}, x4] = arr;
console.log(x1, x2, x3, x4);