ES6中数组 对象 的解构赋值
一、对象的解构
举个例子:
var obj = {
name: 'hanhan',
age: 38,
sex: '中性',
info: {
height: '170',
weight: 130,
hobby: {
aihao1: '男',
aihao2: '大保健'
}
}
}
我们想把对象中的name属性取出来赋值到name变量中我们可以这样写:
(1)var name = obj.name;
在es6中我们还可以用对象的解构赋值
let { name } = obj;
解构 obj对象的 name属性,并把name属性值 赋值给一个叫name的变量。这跟上面的写法是一样的意思。
(2)let { name: mingzi } = obj;
这里的意思是:解构 obj的name属性,并把 name属性值 赋值给一个叫 mingzi的变量
在(1)中我们为什么只用一个name就可以了呢 ?
当我们属性与属性值相同的时候,我们可以省略不写
(3)let { name, age } = obj;
这里的意思是:一次性解构 name属性 和 age属性,并且定义了两个变量 name 和 age
同(2)let { name: mz, age: nl } = obj
这里则是:一次性解构 name属性 和 age属性,并且定义了两个变量 mz 和 nl
(4)let { info: { height } } = obj;
这里的意思是:从obj中解构 info,info是一个对象,然后再从 info中解构 height
(5)let { info: { hobby: { aihao1 } } } = obj;
这里的意思是:从obj中解构 info对象,然后再从 info中解构 hobby对象,再从hobby解构出aihao1
数组的解构
举个例子:
(1)
let arr = ['aa', 'bb', 'cc', 'dd'];
var dd = arr[0];
var tt = arr[1];
var jj = arr[2];
var xx = arr[3];
console.log(dd, tt, jj, xx);
我们可以这样拿到数据

我们还可以
let [dd, tt, jj, xx] = arr;
console.log(dd, tt, jj, xx);
得到的结果是一样的
除了这样我们还可以
let [dd, tt] = arr;
console.log(dd, tt);

这是数组的不完全解构 可只解构其中的一部分
(2)
解构多层数组
let arr = [[['a'], 2, 3], 'aa', 'bb', 'cc'];
let [arr1] = arr;
let [n1] = arr1;
console.log(arr1);
console.log(n1);
打印可得:

本文介绍了ES6中数组和对象的解构赋值方式,包括对象属性的解构,如通过`{ name } = obj`取值,属性与变量名相同时的简化写法,以及多层对象属性的解构,如`{ info: { height } } = obj`。此外,还讲解了数组解构的用法,包括常规解构和不完全解构,以及解构多层数组的示例。
701

被折叠的 条评论
为什么被折叠?



