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];
//报错

猜你喜欢

转载自www.cnblogs.com/xiangmi/p/9512088.html