ES6学习之数组的扩展
记录工作中可能会用到的方法,仅作为笔记
1.扩展运算符(...)
(1) 替代数组的apply方法
应用 Math.max 方法将数组转为一个参数系列,然后求出最大值 //ES5的写法 Math.max.apply(null,[12,3,2]); //ES6的写法 Math.max(...[12,3,2]); //等同于 Math.max(12,3,2); 通过 push 函数将一个数组添加到另一个数组的尾部 var arr1 = [0,1,2]; var arr2 = [3,4,5]; //ES5的写法(push 方法的参数不可以是数组) Array.prototype.push.apply(arr1,arr2); //ES6的写法 arr1.push(...arr2);
(2).合并数组
var arr1 = ['a', 'b']; var arr2 = ['c']; var arr3 = ['d', 'e']; //ES5 arr1.concat(arr2,arr3); //["a", "b", "c", "d", "e"] //ES6 [...arr1,...arr2,...arr3] //["a", "b", "c", "d", "e"]
(3).与解构赋值结合起来生成新数组 (扩展运算符用于数组赋值时只能放在参数的最后一位,否则会报错)
eg1: var list = [1,2,3], a, rest; //ES5 a = list[0]; //1 rest = list.slice(1); //[2,3] //ES6 [a, ...rest] = list; a; //1 rest;//[2,3] eg2: const [first, ... rest] = [1,2,3,4]; first //1 rest //[2,3,4]
eg3:
const [first, ... rest] = [];
first //undefined
rest //[]
eg4:
const [...butLast, last] = [1,2,3,4,5];
//报错
const [first, ...middle,last] = [1,2,3,4,5];
//报错