1. 程式人生 > 其它 >js中拼接多個數組的幾種方法

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]
拼接兩個及以上陣列的時候推薦用這種方法