需求:將多個數組進行拼接
const arr = [1, 2, 3, 4, ];
let arr1 = [5, 6];
let arr2 = [7, 8];
// 最終的結果是:
[1, 2, 3, 4, 5, 6, 7, 8]
方法1:concat
const newArr = arr.concat(arr1).concat(arr2)
console.log(newArr)// [1, 2, 3, 4, 5, 6, 7, 8]
newArr 是新數組,此時內存中存在arr,arr1,arr2,newArr 3個數組。
后面三個方法都不會創建新的數組
方法2:不創建新數組
arr1.forEach(i => {
arr.push(i)
})
arr2.forEach(i => {
arr.push(i)
})
arr1 = null;
arr2 = null;
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8]
沒有新的數組創建,對於內存來說更優。注意到結尾的arr1=null;arr2=null;拼接完成后將數組都清空。
方法3:apply(推薦)
arr.push.apply(arr, arr1);
arr.push.apply(arr, arr2);
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8]
拼接兩個數組的時候推薦用這種方法
方法4:es6的寫法(推薦)
arr.push(...arr1, ...arr2)
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8]
拼接兩個及以上數組的時候推薦用這種方法
