1 let arr = [100, 201, 303, 911];
2 let [one, ...others] = arr;
3 console.log(others.length); //3
4 console.log(one); //100
5 console.log(others[0]); //201
6 console.log(others[1]); //303
1.2 解构:数组自身链接返回自身
1 // 数组链接返回自身
2 let arr = [10, 20, 30];
3 let newArr = arr.concat();
4 console.log(newArr); //[10, 20, 30]
1.3 解构:
1 let arr = [10, 20, 30, 200];
2 let [...newArr] = arr;
3 console.log(newArr);
1.4 解构:
1 let User = {
2 name: 'aluoha',
3 age: 25,
4 class: {
5 group1: {
6 one: '马援',
7 two: '路博德'
8 },
9 group2: {
10 one: '卫青',
11 two: '刘邦'
12 }
13 },
14 arr: [10, 20, 30]
15 };
16 let {name,age,class: {group1},arr} = User;
17 console.log(name, age, group1, group1.two, arr); //aluoha 25 Object{} 路博德 [10,20,30]
1.4.2 解构:
1 let User = {
2 name: 'aluoha',
3 age: 25,
4 class: {
5 group1: {
6 one: '张飞',
7 two: '关羽'
8 },
9 group2: {
10 one: '徐晃',
11 two: '丁典'
12 }
13 },
14 arr: [10, 20, 30]
15 };
16 let {
17 name,
18 age,
19 class: {
20 group1, group2
21 },
22 arr: [one, two, three]
23 } = User;
24 console.log(name, age, group1.one, group1.two, group2.one, group2.two, one, two, three);
25 </script>
2. 杂项:如何反转一个对象的键值对:即将键和值反转
2.1 使用Object.keys() 获取一个对象的属性数组
var obj = {
a: 10,
b: 20,
c: 30
var keys = Object.keys(obj); //可以获取到对象的键,组成的数组
console.log(keys);
2.2 对obj 进行键值反转:
1 var obj = {
2 a: 10,
3 b: 20,
4 c: 30
5 };
6 var keys = Object.keys(obj); //可以获取到对象的键,组成的数组
7 console.log(keys); // ['a','b','c']
8 var res = {};
9 keys.forEach((val) => {
10 res[obj[val]] = val;
11 });
12 console.log(res); // {10:'a',20:'b',30:'c'}
2.3 使用hasOwnProperty() 来实现键值对反转
2.3.1 确认一下 hasOwnProperty 是否有效
1 function Myobj() {
2 this.a = 10;
3 this.b = 20;
4 this.c = 30;
6 Myobj.prototype.d = 40; // 在原型对象上加入一个属性 d ,值为 40
7 var obj = new Myobj(); // 创建一个对象
8 console.log(obj.d); // 40
9 console.log(obj.hasOwnProperty('d')); // false
结果:obj 能够调用d 的值,但是d 不是obj 本身的属性,所以显示false
2.3.2 键值对反转实现:
1 function Myobj() {
2 this.a = 10;
3 this.b = 20;
4 this.c = 30;
6 var obj = new Myobj(); // 创建一个对象
7 var keys = []; //创建一个空数组接受obj 的键
8 for (var key in obj) {
9 if (obj.hasOwnProperty(key)) {
10 keys.push(key);
11 }
12 };
13 var res = {}; //创建一个空对象接受反转后的对象
14 for (var i = 0, len = keys.length; i < len; i++) {
15 res[obj[keys[i]]] = keys[i];
16 }
17 console.log(obj);
18 console.log(res);