(对象、数组)解构赋值
程序员文章站
2022-07-02 09:47:00
...
解构赋值
解析一个结构并给变量赋值,就是快速的从对象或数组中拿到对应的数据
解构对象
- 使用{}解构对象
- 语法:{变量}=对象
- 使用的时候可以一次解析多个
- PS:这个变量必须是对象中的某一个成员,否则拿到的就是undefined
var obj ={
name:"Jack",
age:18,
gender:"男"
}
//可以解析一个
let {name}=obj;//等价于 let name = obj.name;
console.log(name);//="Jack"
//也可以解析多个
let {name,age,gender}=obj;
console.log(name);//="Jack"
console.log(age);//=18
console.log(gender);//="男"
- 在解构的时候赋值一个新名字
- 语法:{对象中的成员名称:新变量名}=对象
var obj ={
name:"Jack",
age:18,
gender:"男"
}
let {name:a}=obj;//等价于 let a = obj.name;
console.log(a);//=>"Jack"
//混合使用
let {name:a,age,gender:b}=obj;
console.log(a);//=>"Jack"
console.log(age);//=>18
console.log(b);//=>"男"
- 在解构的时候可以嵌套对象使用
var obj ={
name:"Jack",
obj2:{
name:"Rose",
age:18,
obj3:{
name:"child",
age:2
}
}
}
//获取obj.obj2.name
let {obj2:{name:a}}=obj;
console.log(a);//=>"Rose"
//获取obj.obj2.age和obj.obj2.obj3.age
let {obj2:{age:a,obj3:{age:b}}}=obj;
console.log(a);//18
console.log(b);//2
解构数组
- 使用[]结构数组
- 语法:[变量名]=数组
- 在解构的时候是按照索引对应的,可以同时解析多个
var arr=["中国","北京","海淀","永丰"];
let [a,b]=arr;
console.log(a);//="中国"
console.log(b);//="北京"
- 可以嵌套使用
var arr=["中国","北京","海淀","永丰",["首都","帝都"]];
let [a,b,c,d,[e,f]]=arr;
console.log(a);//="中国"
console.log(b);//="北京"
console.log(c);//="海淀"
console.log(d);//="永丰"
console.log(e);//="首都"
console.log(f);//="帝都"