const arr = [1, 2, 3, 4, ];
let arr1 = [5, 6];
let arr2 = [7, 8];
const newArr = arr.concat(arr1).concat(arr2)
console.log(newArr)// [1, 2, 3, 4, 5, 6, 7, 8]
newArr 是新数组,此时内存中存在arr,arr1,arr2,newArr 3个数组。
后面三个方法都不会创建新的数组
const arr = [1, 2, 3, 4, ];
let arr1 = [5, 6];
let arr2 = [7, 8];
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(推荐)
const arr = [1, 2, 3, 4, ];
let arr1 = [5, 6];
let arr2 = [7, 8];
arr.push.apply(arr, arr1);
arr.push.apply(arr, arr2);
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8]
拼接两个数组的时候推荐用这种方法
方法4:es6的写法(推荐)
const arr = [1, 2, 3, 4, ];
let arr1 = [5, 6];
let arr2 = [7, 8];
arr.push(...arr1, ...arr2)
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8]
拼接两个及以上数组的时候推荐用这种方法