push、concat和...运算符在js中都用于处理数组,那他们之间的区别和共同点是什么呢?如下:
一、push方法
push() 是一个修改原数组的方法,它接受任意数量的参数,把他们逐个添加到数组的末尾,并返回新的数组长度。
例:
let arr = [1,2,3];
arr.push(4,5);
console.log(arr) //arr现在变成[1,2,3,4,5]
二、concat()方法
concat()也是一个创建新数组的方法,它接受任意数量的参数,把他们逐个添加到新数组的末尾,与push()不同的是,concat()不修改原数组,而是返回一个新的数组。
例:
let arr1 = [1,2,3];
let arr2 = arr1.concat(4,5)
console.log(arr2) //arr2现在变成[1,2,3,4,5]
console.log(arr1) //arr1保持不变[1,2,3]
三、...展开运算符
展开运算符可以用于将一个可迭代的对象( 可以使用for循环遍历的对象,如数组 )展开为一系列元素,他可以出现在两种地方:作为函数参数的展开,或者在一个数组字面量中展开。
在函数的参数中展开:
function getList(a,b){
console.log(a,b)
}
getList(...[1,2]) //输出"1 2"
在数组字面量中:
let arr = [...[1,2,3],4,5];
console.log(arr) //arr现在变成[1,2,3,4,5]
注意:使用展开运算符创建新数组时,如果原数组是嵌套数组,展开后仍会保留嵌套结构。