嵌套的 es6 数组解构?
Nested es6 array destructuring?
是否可以嵌套解构?
例如我想要数组中的第一项,在该数组中我想要该子数组的第一项。
鉴于:
let arr = [['foo'], ['bar']];
有没有更简单的方法:
let firstItem = arr[0][0];
啊想通了:
let [[firstItem]] = arr;
那将是等价的。
是的,可以解构嵌套数组(和对象)。
让我们考虑这个嵌套数组[[1], [1, 2], [1, 2, 3]]
,它是一个二维数组。要获取第一个子数组的第一个元素,
let [[x]] = [[1], [1, 2], [1, 2, 3]]
获取第二个子数组的第一个元素,
let [,[x]] = [[1], [1, 2], [1, 2, 3]]
这里,逗号用于跳过元素。像这样获取第三个子数组的第二个元素:
let [,,[,x]] = [[1], [1, 2], [1, 2, 3]]
如果要检索特定元素以及数组中的其余元素,可以使用剩余运算符...
。例如,要分别获取第 3 个子数组的第一个元素和其余元素,
let [,,[x, ...others]] = [[1], [1, 2], [1, 2, 3]] // x=1, others=[2, 3]
这里我只是假设多个项目只是为了让语法更清晰。
let arr = [['foo','foo1'], ['bar','bar1']];
var a,b,c,d;
[[a,b],[c,d]] = arr;
console.log(a,b,c,d); // foo,foo1,bar,bar1
是否可以嵌套解构?
例如我想要数组中的第一项,在该数组中我想要该子数组的第一项。
鉴于:
let arr = [['foo'], ['bar']];
有没有更简单的方法:
let firstItem = arr[0][0];
啊想通了:
let [[firstItem]] = arr;
那将是等价的。
是的,可以解构嵌套数组(和对象)。
让我们考虑这个嵌套数组[[1], [1, 2], [1, 2, 3]]
,它是一个二维数组。要获取第一个子数组的第一个元素,
let [[x]] = [[1], [1, 2], [1, 2, 3]]
获取第二个子数组的第一个元素,
let [,[x]] = [[1], [1, 2], [1, 2, 3]]
这里,逗号用于跳过元素。像这样获取第三个子数组的第二个元素:
let [,,[,x]] = [[1], [1, 2], [1, 2, 3]]
如果要检索特定元素以及数组中的其余元素,可以使用剩余运算符...
。例如,要分别获取第 3 个子数组的第一个元素和其余元素,
let [,,[x, ...others]] = [[1], [1, 2], [1, 2, 3]] // x=1, others=[2, 3]
这里我只是假设多个项目只是为了让语法更清晰。
let arr = [['foo','foo1'], ['bar','bar1']];
var a,b,c,d;
[[a,b],[c,d]] = arr;
console.log(a,b,c,d); // foo,foo1,bar,bar1