es6三点运算符的用法

扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

 1 console.log(...[1,2,3]); // 1 2 3 2 console.log(1,...[1,2,3],5); // 1 1 2 3 5 

 

合并多个数组

通过push函数,将一个数组添加到另一个数组的尾部;有了扩展运算符,就可以直接将数组传入push方法;

扩展运算符提供了数组合并的新写法。

1     var arr1 = [0,1,2];
2     var arr2 = [3,4,5];
3     arr1.push(...arr2); // [0,1,2,3,4,5]
4     console.log(arr1);
1     var arr4 = ['a','b'];
2     var arr5 = ['c'];
3     var arr6 = ['d','e'];
4     // es5合并数组
5     arr4.concat(arr5,arr6);
6     // es6合并数组
7     var newArr = [...arr4,...arr5,...arr6];
8     console.log(newArr);

简化求出一个数组最大元素的写法,由于 JavaScript 不提供求数组最大元素的函数,所以只能套用Math.max函数,将数组转为一个参数序列,然后求最大值。有了扩展运算符以后,就可以直接用Math.max了。

 1 console.log(Math.max(...[14,2,7])); // 14  

扩展运算符赋值

如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错

 1     const [first,...rest] = [1,2,3,4,5];
 2     console.log(first); // 1
 3     console.log(rest); // [2,3,4,5]
 4 
 5     // 如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
 6     const [f,...r] = [];
 7     console.log(f,r); // undfined,[]
 8 
 9     const [f1,...r1] = ["foo"];
10     console.log(f1,r1); // foo,[]

 

posted @ 2018-10-02 17:30  芙蓉0504  阅读(3797)  评论(0编辑  收藏  举报