ES6解构

本文详细介绍了ES6中的数组解构特性,包括对象数组解构、多维数组解构、不定元素解构以及混合解构。通过实例展示了如何使用const进行数组解构,并强调了不定元素必须作为解构的最后一个元素。同时,文章还探讨了对象与数组混合解构的场景,演示了解构嵌套对象和数组的方法。
摘要由CSDN通过智能技术生成

数组解构

数组解构是ES6的新特性,在此做了一些小尝试

1.解构对象数组

let arr = [{
				name:"冰冻黑熊"
			},{
				name:'冰冻白熊'
			},{
				name:"冰冻狗熊"
			}]
			const [a,b,c] = arr
			console.log("a:",a.name,"b:",b.name,"c:",c.name)//a: 冰冻黑熊 b: 冰冻白熊 c: 冰冻狗熊
			arr[0].name = '冰冻小熊'//修改指针指向空间的值
			console.log("a:",a.name,"b:",b.name,"c:",c.name)//同样,数组解构,以指针的形式指向,对应位置,可以通过修改指针指向空间的值来修改const

使用const常量解构数组,与const常量指针的用法一样

2.多维数组解构

let color = ['red', ['white', 'black'],'green', 'blue'];
			let [first,second] = color
			console.log("first:",first,"second",second)//first: red second (2) ["white", "black"]
			let [one,[two,three]] = color//当多维数组嵌套时,[two,three]的位置为数组,运用相同思维进行二重解构
			console.log("one:",one,"  two:",two,"  three:",three)//one: red   two: white   three: black

多维数组的解构的基本思路不变,按为解析,解析到下层数组时,同样去遍历解构

3.不定元素

let animals = ['冰冻黑熊','冰冻奶熊','冰冻小熊','冰冻白熊']
			let [name1,name2,...name3] = animals//name1与name2解构 animals中的前两位,...name3表示将animals中剩余元素赋值给一个元素
			console.log("name1:",name1,"  name2",name2,"  name3",name3)//name1: 冰冻黑熊   name2 冰冻奶熊   name3 (2) ["冰冻小熊", "冰冻白熊"]
			
			// let [a,...b,c] 将会报错,不定元素必须为解构的最后一个元素,否则报错

解构数组时,若不需要逐个解构,可将用…的写法将剩下的多个元素存入1个变量中,需注意不定元素只能为解构的最后一个元素

4.对象与数组的混合解构

let mix = {
				person:{
					basic:{
						name:"冰冻黑熊",
						age:21,
						sex:"男"
					}
				},
				hobby:["吃饭","睡觉"]
			}
let {person:{basic},
	 hobby} = mix
			console.log("basic:",basic,"  hobby",hobby)//basic: {name: "冰冻黑熊", age: 21, sex: "男"}age: 21name: "冰冻黑熊"sex: "男"[[Prototype]]: Object   hobby (2) ["吃饭", "睡觉"]
			console.log("basic.name:",basic.name,"  basic.age:",basic.age,"  basic.sex:",basic.sex)//basic.name: 冰冻黑熊   basic.age: 21   basic.sex: 男

对于数组与对象的混合解构,和多维数组解构的思路一样,碰见对象就使用解构对象的语法{}去逐层解构,遇见数组就使用解构数组的语法[]去逐步解构

let {person:{basic:{name,age,sex}},
	 hobby} = mix
	console.log(name,age,sex)//冰冻黑熊 21 男

在1的基础上,继续解构basic。

ES6解构赋值的好处有以下几点: 1. 简化代码:ES6解构赋值可以让我们更简洁地从数组或对象中提取值,并将其赋给变量。这样可以减少冗余的代码,使代码更加简洁易读。 2. 提高可读性:通过使用解构赋值,我们可以清晰地表达出我们想要提取的值的含义,使代码更易于理解和维护。 3. 方便的交换变量值:使用解构赋值可以方便地交换两个变量的值,而不需要使用额外的中间变量。 4. 快速提取对象属性:解构赋值可以快速提取对象中的属性,并将其赋给变量。这样可以方便地访问和操作对象的属性。 5. 函数参数的灵活应用:解构赋值可以用于函数的参数中,可以方便地从传入的对象或数组中提取所需的值,使函数的参数更加灵活。 6. 处理JSON数据:解构赋值可以方便地从JSON数据中提取所需的值,使得处理JSON数据更加方便快捷。 7. 支持默认值:解构赋值可以为变量设置默认值,当提取的值不存在时,可以使用默认值来代替,避免出现undefined的情况。 8. 多层嵌套解构ES6解构赋值支持多层嵌套的解构,可以方便地从复杂的数据结构中提取所需的值。 9. 可以与扩展运算符结合使用:解构赋值可以与扩展运算符(...)结合使用,可以方便地提取数组或对象中的部分值,并将其与其他值合并或进行其他操作。 总之,ES6解构赋值可以使我们的代码更加简洁、可读性更高,并且提供了更多的灵活性和便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值