(对象、数组)解构赋值

解构赋值

解析一个结构并给变量赋值,就是快速的从对象或数组中拿到对应的数据

解构对象

  • 使用{}解构对象
  • 语法:{变量}=对象
    • 使用的时候可以一次解析多个
    • 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);//="帝都"

发布了11 篇原创文章 · 获赞 2 · 访问量 337

猜你喜欢

转载自blog.csdn.net/weixin_42498461/article/details/103872463