ES6数组扩展
程序员文章站
2023-12-22 13:45:40
...
1、扩展操作符
可以看成rest参数的逆运算
const a1 = [1, 2, 3]
console.log(...a1) // 1 2 3
// 应用场景:
1:复制数组
const arr1 = [1, 2];
const arr2 = [...a1];
2:合并数组
const a1 = [1, 2, 3];
const a2 = [4, 5, 6];
const a3 = [7, 8, 9];
ES5写法:a1.concat(a2).concat(a3);
ES6写法:[...a1, ...a2, ...a3];
3:与解构赋值合用
const a = [0, 1, 2, 3, 4, 5]
ES5写法:const a1 = a[0],
a2 = a.slice(1);
ES6写法:const [a1, ...a2] = a;
2、Array.from()
将类数组转化为数组
const obj = {
'0': '哈',
'1': '嘻',
'2': '哦',
'3': '呵',
'length': 4
}
ES5写法:console.log([].slice.call(obj));
ES6写法:console.log(Array.from(obj));
3、Array.of()
将一组值转化为数组
Array.of(0, 1, '4')
// [0, 1, '4']
4、copyWithin()
在数组内部,将指定位置的成员复制到其他位置(替换之前的成员),然后返回当前数组。
const arr = [0, 1, 2, 3, 4, 5, 6];
arr.copyWithin(3)
// [0, 1, 2, 0, 1, 2, 3]
arr.copyWithin(3, 2)
// [0, 1, 2, 2, 3, 4, 5]
arr.copyWithin(3, 2, 4)
// [0, 1, 2, 2, 3, 5, 6]
// *** 只能分开使用,因为copyWidthin()会改变原数组