1. 程式人生 > >Javascript陣列---push(),concat()方法的區別

Javascript陣列---push(),concat()方法的區別

在陣列操作中,push()很常見,concat()卻很少見,然而兩者的用法很相似,可以理解為,push()是concat()的簡化版,先看下面的例子:

    /*push()方法*/
    var array=[1,2,3,4,5];

    console.log(array);   //[1, 2, 3, 4, 5]

    array.push(6);        //一個引數
    console.log(array);   //[1, 2, 3, 4, 5, 6]

    array.push(6,7);      //兩個引數
    console.log(array);   //[1, 2, 3, 4, 5, 6, 7]

    array.push([6,7]);    //引數為陣列
    console.log(array);   //[1, 2, 3, 4, 5, 6, Array(2)]


    /*concat()方法*/
    var array=[1,2,3,4,5];

    console.log(array);   //[1, 2, 3, 4, 5]

    var array2=array.concat(6);    //一個引數
    console.log(array);    //[1, 2, 3, 4, 5]
    console.log(array2);   //[1, 2, 3, 4, 5, 6]

    var array2=array.concat(6,7);    //兩個引數
    console.log(array);    //[1, 2, 3, 4, 5]
    console.log(array2);   //[1, 2, 3, 4, 5, 6,7]

    var array2=array.concat([6,7]);    //引數為陣列
    console.log(array);    //[1, 2, 3, 4, 5]
    console.log(array2);   //[1, 2, 3, 4, 5, 6, 7]

通過程式碼可以看出一下幾點差別: 
1,push()是在原陣列的基礎上修改的,執行push()方法後原陣列的值也會變;concat()是先把原陣列複製到一個新的陣列,然後在新陣列上進行操作,所以不會改變原陣列的值。

2,如果引數不是陣列,不管引數個數有多少個,push()和concat()都會直接把引數新增到陣列後;如果引數是一個數組,push()就會直接把陣列新增到原陣列後,而concat()會把數組裡的值取出來新增到原陣列後。

原文:https://blog.csdn.net/steven_2669/article/details/77161663