假如现在有两个数组
var array1 = [1, 2, 3]; var array2 = ['a', 'b'];
我们想要的效果是:把array2数组元素添加到array1中,使得array1直接变成下面这个样子:
[1, 2, 3, 'a', 'b']
如何快速实现呢?
可能有小伙伴会想到使用push方法,我们来看看push效果是怎么样的:
var array1 = [1, 2, 3];
var array2 = ['a', 'b'];
array1.push(array2)
console.log(array1); // [ 1, 2, 3, [ 'a', 'b' ] ]
实际上push方法上会将该整个数组作为单个元素添加,而不是单独添加元素,因此最终得到的是一个数组内的数组,并不是我们想要的效果。
估计有小伙伴想到了concat方法,concat确实可达到我们想要的效果,但它实际上并不直接附加到现有数组array1数组,而是创建并返回一个新数组,我们需要再把这个新数组赋给array1才能达到效果。
var array1 = [1, 2, 3];
var array2 = ['a', 'b'];
array1 = array1.concat(array2)
console.log(array1); // [ 1, 2, 3, 'a', 'b' ]
实际上我们也可以使用apply快速地达到我们想要的效果哦:
var array1 = [1, 2, 3];
var array2 = ['a', 'b'];
array1.push.apply(array1,array2)
console.log(array1); // [ 1, 2, 3, 'a', 'b' ]