数组和对象的解构赋值

一、数组传值

let arr = ['张飞', '关羽', '赵云', '典韦', '张辽', '貂蝉'];
		// 数据解构赋值
		let [a, b, c, d, e, f] = ['张飞', '关羽', '赵云', '典韦', '张辽', '貂蝉'];
		//a - 张飞
		//b - 关羽
		//...
		console.log( a, b, c, d, e, f );

在赋值的时候是以一一对应的方式
如果变量少(abc)值多(arr())只取对应位置的值
如果变量多(abc)值少(arr())相应变量传一个undefined

1、取得剩余值

let [a, b, ...c] = ['张飞', '关羽', '赵云', '典韦', '张辽', '貂蝉'];
console.log( a, b, c );

也可以在变量前面加(…)三个点取得剩余的值

2、按需取值

let [, a, , , b, ] = ['张飞', '关羽', '赵云', '典韦', '张辽', '貂蝉'];
console.log(a, b);

利用逗号占位取值

3、复杂类型取值

let [, a, , [, b, , c]] = ['张飞', '关羽', '赵云', ['林冲', '鲁智深', '宋江', '武松']]

		console.log( a, b, c )

当遇到值中内部还有数组,在变量内添加相应的数组也是根据一一对应的方式取值

二、对象传值

		let obj = {
			uname : '张三丰',
			age : 22,
			sex : '男',
			score : 99,
			index : 3
		}

		let uname = obj.uname;
		let age = obj.age;
		let sex = obj.sex;

		console.log( uname, age, sex );


		//把属性名当做变量名取值既可

1、定义变量取值

let {uname, age, sex, score, index} = {
			uname : '张三丰',
			age : 22,
			sex : '男',
			score : 99,
			index : 3
		}
		console.log( uname, age, sex, score, index );

取多少值定义多少变量

2、定义变量取值的同时改变某个值

let uname = '李寻欢';
	// 可能在解构赋值之前已经申明了这个变量,
	// 这个情况用冒号改变量名
	let {uname:userName, sex, aaa} = {
		uname : '张三丰',
		age : 22,
		sex : '男',
		score : 99,
		index : 3
		}
	console.log( userName, sex, aaa );

3、另一种对象解构赋值

	let obj = {uname : '阿飞', age : 22, sex : '男'};
		function fn ({uname, age , sex}) {
			// let uname = o.uname;
			// let age = o.age;
			// let sex = o.sex;
			console.log(uname, age , sex);
		}
		fn(obj)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值