1. 扩展运算符(spread) ...
- 有序集合
{
let arr = [1, 2, 3, 4, 5];
console.log(...arr); // 1 2 3 4 5
let [a, b, ...c] = arr;
console.log(c); // [3,4,5]
}
2. ... 的应用:
应用1: 可以当做 可变参数数组 arguments 使用
{
let fn1 = (...arr) => {
// arguments
console.log(arr); //[1, 2, 3, 4, 5]
console.log(arr[0]); // 1
}
fn1(1, 2, 3, 4, 5);
}
应用2: 数组深拷贝
常见三种拷贝方式 :
- for循环
- 数组操作方法concat
- ... 扩展运算符**
let arr = [1, 2, 3, 4, 5];
// 1. for循环
let arr1 = [];
for (let i = 0; i < arr.length; i++) {
arr1[i] = arr[i];
}
arr1.push(6);
console.log(arr1, arr); // [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5]
// 2. 数组操作方法:concat();
let arr2 = [].concat(arr);
arr2.push(6);
console.log(arr2, arr); // [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5]
// 3. ...
let arr3 = [...arr];
let [...arr4] = arr;
arr3.push(6);
arr4.push(7);
console.log(arr3, arr); // [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5]
console.log(arr4, arr); // [1, 2, 3, 4, 5, 7] [1, 2, 3, 4, 5]
3. 数组的拼接:
let arr = [1, 2, 3];
let arr1 = [4, 5, 6];
let arr2 = [...arr,...arr1];
console.log(arr2); // [1, 2, 3, 4, 5, 6]