js中拼接多個數組的幾種方法
阿新 • • 發佈:2022-03-16
需求:將多個數組進行拼接
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]
拼接兩個及以上陣列的時候推薦用這種方法