在ES6中数组增加了许多的新方法,下面我将介绍这些新方法
es6中数组操作方法
1.扩展运算符(spread)
扩展运算符 就是 三个点(…)。
他的作用可以将一个数组 转化成 参数序列,下面介绍扩展运算符的应用
扩展运算符对于拷贝对象的第一层,属于深拷贝;对于拷贝对象更深层次,则属于浅拷贝
(1)复制数组
1.用普通的方法直接赋值
const a1 = [1,2];
const a2 = a1;
a1[0] = 8;
console.log(a1,a2); 打印的都是[8,2]
2.使用es5中的拼接方法复制
const a1 = [1,2];
const a2 = a1.concat();
a1[0] = 8;
console.log(a1,a2); 打印 [8,2],[0,2]
3.使用es6 扩展运算符
const a1 = [1,2];
const a2 = [...a1];
a1[0] = 8;
console.log(a1,a2); 打印 [8,2],[0,2]
从上面的代码可以看出,当我直接让a1 = a2的时候,a2会随着a1的改变而改变,使用concat()和 es6中的(...)扩展运算符 可以复制数组
进行一次深拷贝;a2就不会受到a1的改变而影响
(2)合并数组
1.使用concat拼接三个数组
const arr1 = [1, 2];
const arr2 = [3];
const arr3 = [4, 5];
arr1 = arr1.concat(arr2, arr3);
console.log(arr1); [1,2,3,4, 5]
2.使用扩展运算符(...)拼接数组
const a1 = [1,2,3,4];
const a2 = [5];
const a3 = [...a1,...a2];
console.log(a3); [1,2,3,4,5]
3.使用扩展运算符(...)拼接数组
const a1 = [1,[2]];
const a2 = [3];
const a3 = [...a1,...a2];
a1[0] = 8;
a1[1][0] = 8;
console.log(a3); [1,[8],3]
使用concat和扩展运算符都可以进行拼接数组(都是只进行一次深拷贝)
(3)扩展运算符还可以将字符串转为数组