在一般的数组操作中,我们经常用到 push(),但是用 concat() 的时候却很少,然而两个函数的用法其实很相似,你可以理解为,push() 是 concat()的简化版;
我们可以写个例子查看一下:
/*push()方法*/
var arr=[1,2,3,4,5];
console.log(arr); //[1, 2, 3, 4, 5]
arr.push(6); //一个参数
console.log(arr); //[1, 2, 3, 4, 5, 6]
arr.push(6,7); //两个参数
console.log(arr); //[1, 2, 3, 4, 5, 6, 7]
arr.push([6,7]); //参数为数组
console.log(arr); //[1, 2, 3, 4, 5, 6, Array(2)]
/*concat()方法*/
var arr=[1,2,3,4,5];
console.log(arr); //[1, 2, 3, 4, 5]
var arr2=arr.concat(6); //一个参数
console.log(arr); //[1, 2, 3, 4, 5]
console.log(arr2); //[1, 2, 3, 4, 5, 6]
var arr2=arr.concat(6,7); //两个参数
console.log(arr); //[1, 2, 3, 4, 5]
console.log(arr2); //[1, 2, 3, 4, 5, 6,7]
var arr2=array.concat([6,7]); //参数为数组
console.log(arr); //[1, 2, 3, 4, 5]
console.log(arr2); //[1, 2, 3, 4, 5, 6, 7]
通过运行上述代码,我们可以看出有以下几点区别:
1、push()函数是会修改原有的数组数据,执行push()方法后原有数组的值会对应的改变;而concat()方法则是先把原数组原封不动的复制到一个新的数组,然后在新数组上进行操作,所以concat()不会改变原数组的值。
2、如果方法的参数不是数组,不管参数个数有多少个,push()和concat()都会直接把参数追加到当前数组后面;但是,如果参数是一个数组,push()就会直接把数组添加到原数组后,而concat()会把数组里的值取出来添加到原数组后。我们一般通过ajax从后台获取数据的时候,如果后台给的是一个数组,需要追加的话,就需要用到 concat() 而不能用 push()
© 著作权归作者所有
文章评论(0)