数组的深拷贝方法
let arr = [1,2,3,4,5];
let arr1 = [];
for(let i = 0;i < arr.length;i++){
arr1[i] = arr[i];
}
arr1.push(6);
console.log(arr1);//[1, 2, 3, 4, 5, 6]
let arr = [1,2,3,4,5];
let arr2 = [].concat(arr);
arr2.push(6);
console.log(arr2);//[1, 2, 3, 4, 5, 6]
let arr = [1,2,3,4,5];
let arr3 = [...arr];
let [...arr4} = arr;
arr3.push(6);
arr4.push(6);
console.log(arr3);//[1, 2, 3, 4, 5, 6]
console.log(arr4);//[1, 2, 3, 4, 5, 6]
... 拓展
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]
function fn1(...arg){
//arguments
console.log(arg);//[1, 2, 3, 4, 5, 6, 7, 8]
}
fn1(1,2,3,4,5,6,7,8);
数组的操作方法
let arr = [6,1,4,5,3,2];
console.log(arr.sort());//[1, 2, 3, 4, 5, 6]
- 2.flat();
将多维数组展开成一维数组,通常用于数据处理
let arr = [[1,2,3,[4,5,6,[7,8[9,0]]],[11,12,13]]];
console.log(arr.flat(1));//[1, 2, 3, Array(4), Array(3)]
console.log(arr.flat(2));//[1, 2, 3, 4, 5, 6, Array(3), 11, 12, 13]
console.log(arr.flat(Infinity));[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 12, 13]
//参数写几,就展开几层
//展开所有层,参数用Infinity
- 3.forEach();
用于遍历数组中的每一个元素
let arr = [1,2,3,4,5,6,7,8,9];
arr.forEach(value,index,array) =>{
console.log(value,index,array);
//第一个参数当前元素值
//第二个参数当前元素的索引值
//第三个参数原数组
*参数名不固定,但是参数顺序固定*
}