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