js中拼接多个数组的几种方法

需求:将多个数组进行拼接

    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]
拼接两个及以上数组的时候推荐用这种方法

posted @ 2022-03-16 12:24  Fanyee  阅读(3123)  评论(0编辑  收藏  举报