首頁 >web前端 >js教程 >深入理解JS數組合並push與concat區別

深入理解JS數組合並push與concat區別

yulia
yulia原創
2018-09-14 14:53:291799瀏覽

在JavaScript中經常用到數組拼接,push 和concat 都可以合併數組,他們之間有什麼區別呢?接下來就跟大家講述JS數組合併push與concat差別。有需要的同學可以參考一下。

1、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)]

#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()會把數組裡的值取出來加到原數組後。

總結:

如果想數組追加用concat,但是和java的replace一樣,用完記得arr1=arr1.concat(arr2)。希望本文所述對大家JavaScript程式設計有幫助。

以上是深入理解JS數組合並push與concat區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn