解构赋值
1 左右两边结构必须一样
2 右边必须是个东西
3 声明和赋值 不能分开(必须在一句话里面完成)
let [a, b, c] = [1, 2, 3]
console.log(a, b, c)
let { x, y, z } = { x: 1, y: 2, z: 3 }
console.log(x, y, z)
let [{ d, e }, [n1, n2, n3], num1, str1] = [{
d: 12, e: 5
},
[12, 5, 8],
8,
'hei'
]
console.log(d, e, n1, n2, n3, num1, str1);
let [json, arr, num, str] = [{ a: 1, b: 2 }, [1, 2, 3], 8, 'str']
console.log(json, arr, num, str)
let obj = { person: { name: '羽神' }, sex: '女' };
let { person: { name }, sex } = obj; // 连续结构赋值
console.log(name, sex);
let { person: { name: YsName } } = obj; // 连续结构赋值加更改属性名称
console.log(YsName);
数组对象解构
我们经常使用 ES6 的解构,对于一个数组,每项都是一个对象,如果想获得数组第一项的对象的某个值,可以这样写
const person = [
{
name: "yus",
age: 18,
},
{
name: "sz",
age: 22,
},
{
name: "lb",
age: 30,
}
];
const [, , { age }] = person; // ,作为占位符 没有 , 选择第一个
console.log(age); // 30
也可以采用逗号占位的方式指定一个项进行赋值;
const person = [
{
name: "yus",
age: 18,
},
{
name: "sz",
age: 22,
},
{
name: "lb",
age: 30,
}
];
const [, , arr3] = person; // ,作为占位符 没有 , 选择第一个
console.log(arr3); // {name: "lb",age: 30,}