(对象、数组)解构赋值

解构赋值

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

解构对象

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在JavaScript解构赋值是一种方便的语法,可以将数组对象的成员解构出来并赋值给变量。对于数组解构,可以使用方括号来指定要解构的变量,然后将数组的对应元素赋值给这些变量。例如,如果我们有一个存放了名字和姓氏的数组`arr`,我们可以使用解构赋值数组的元素赋值给对应的变量。\[2\] 在对象解构,我们可以使用花括号来指定要解构的变量,然后将对象的对应属性值赋值给这些变量。例如,如果我们有一个对象`obj`,其包含`name`和`age`属性,我们可以使用解构赋值将这些属性值赋值给对应的变量。\[1\] 此外,我们还可以将`.entries()`方法与解构语法一同使用,来遍历一个对象的键值对。这个方法返回一个包含对象的键值对的数组,然后我们可以使用解构赋值将键和值分别赋值给对应的变量。\[3\] 希望这个解答对你有帮助! #### 引用[.reference_title] - *1* [解构赋值数组解构、对象解构)](https://blog.csdn.net/qq_50260510/article/details/129927253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ES6 --- 解构赋值数组对象,函数)使用详解](https://blog.csdn.net/m0_52409770/article/details/123096308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司军礼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值