解构化赋值:
let obj = {
name : '小明',
age : 18
};
// 定义同名变量
// let name , age
// 会把对应的值传到下面
// ({name, age} = obj);
// console.log(name, age);
打印结果是 小明 18
也可以直接声明赋值
let {name, age} = obj
console.log(name, age); //小明 18
默认赋值 如果对象里面没有对应的属性,则使用自己的,若有则使用对象的
let obj = {
name : '小明',
age : 18,
sex : 'female'
};
let { name : oname, age : oage, sex = 'male'} = obj;
console.log(oname, oage, sex);
解构数组
let arr = [1, 2, 3, 4, 5];
let {0 : x, 1 : y, 2 : z, 3 : g, 4 : f} = arr;// 要对应的添加数组索引才能够对应上
console.log(x, y, z, g, f);
// 也可用数组接受
let [x, y, z, g, f] = arr; //长像相似, 底层也是数组解构
console.log(x, y, z, g, f);
// 拿出数组中对象的值;
let arr = [1, 2, 3, {name : '小明'}];
let [,,,{name}] = arr;
console.log(name);
应用场景,复杂数据里要分开操作,处理数据
let data ={filedata:[{
UserId :1001,
UserName : '李连杰',
UserHeader : '../image/liulangnanhai.png'
},{
UserId :1002,
UserName : '李小春',
UserHeader : '../image/liulangnanhai.png'
},{
UserId :1003,
UserName : '张杰',
UserHeader : '../image/liulangnanhai.png'
}]
}
og(data);
let {filedata} = data;
console.log(filedata[1]);
let {UserId, UserName, UserHeader} = filedata[0];
console.log(UserId, UserName, UserHeader);