數組中的push和concat push的定義 向數組的末尾添加一個或更多元素,返回值為數組添加元素後的長度。 concat的定義 連接兩個或更多的數組,並返回結果。該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。 // push方法 var a = [1,2,3]; console.l ...
數組中的push和concat
-
push的定義
向數組的末尾添加一個或更多元素,返回值為數組添加元素後的長度。
-
concat的定義
連接兩個或更多的數組,並返回結果。該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
// push方法 var a = [1,2,3]; console.log(a.push(4,5)); // 5 a.push(6,7); console.log(a); // [1,2,3,4,5,6,7] // concat方法 var a = [1,2,3]; var b = [4,5]; var c = a.concat(b); console.log(a,b,c); // [1,2,3] [4,5] [1,2,3,4,5]
-
兩者區別
- push()是在原數組的基礎上修改的,執行push()方法後原數組的值也會變,該方法會改變原數組以及原數組的長度;
- concat()是先把原數組複製到一個新的數組,然後在新數組上進行操作,所以不會改變原數組的值。
- 如果參數不是數組,push()和concat()都會直接把參數添加到數組後;如果參數是一個數組,push()就會直接把數組添加到原數組後,而concat()會把數組裡的值取出來添加到原數組的後面。
// push方法添加數組 var x = [5,6,7,8]; x.push(['a','b']); console.log(x); // [5, 6, 7, 8, Array(2)] ==> [5, 6, 7, 8, ['a','b']] // concat方法添加數組 var y = ['s','f','h','k']; var z = y.concat([2,3]); console.log(z); // ['s', 'f', 'h', 'k', 2, 3] // 註意: concat()參數是數組會展開,但只會展開一層 var y = ['s','f','h','k']; var z = y.concat([2,3,['u']]); console.log(z); // ['s', 'f', 'h', 'k', 2, 3, Array(1)]