JavaScript 嵌套解构

示例

我们不仅限于解构对象/数组,还可以解构嵌套的对象/数组。

嵌套对象分解

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);