解构数组可以认为是模式匹配,只要等号两边的模式相同,左边的变量就会被赋予对应的值:
let data = [1, 2, 3];
let [a, b, c] = data;
console.log(a);//输出1
console.log(b);//输出2
console.log(c);//输出3
这样定义变量与通过以下方式的单条语句定义变量的效果相同,但是书写更为方便:
let data = [1, 2, 3];
let a = data[0];
let b = data[1];
let c = data[2];
console.log(a);//输出1
console.log(b);//输出2
console.log(c);//输出3
可以通过使用...在解构的过程中创建剩余变量:
let data = [1, 2, 3];
let [a, ...r] = data;
console.log(a);//输出1
console.log(r);//输出[ 2, 3 ]
剩余变量如果没有匹配到值则为空数组[ ]:
let data = [1];
let [a, ...r] = data;
console.log(a);//输出1
console.log(r);//输出[ ]
可以只获取特定索引的值:
let data = [1, 2, 3];
let [a] = data;
let [, b] = data;
le