在不创建新数组的情况下,如何把一个数组合并到另外一个数组?

coding2live 2021-01-22 21:35:01 109

在JavaScript中是否存在一个类似python的extend方法,可以把一个数组扩展到另外一个数组。

我想要实现的效果如下:

>>> a = [1, 2]
[1, 2]
>>> b = [3, 4, 5]
[3, 4, 5]
>>> SOMETHING HERE
>>> a
[1, 2, 3, 4, 5]

我知道在JavaScript中存在一个a.concat(b)方法,但这个方法会创建一个新数组,而不是扩展第一个数组。

以下答案仅供参考

push方法可以接受多个参数。

可以用spread方法将第二个数组的所有元素作为参数传递给.push:

>>> a.push(...b)

如果你的浏览器不支持ECMAScript 6,你可以使用.apply来代替:

>>> a.push.apply(a, b)

或者按照下面的写法:

>>> Array.prototype.push.apply(a,b)

请注意,如果数组b太长,上面提到的方法可能会出现内存溢出。

假如数组b确实很长,还是建议使用for循环的方式去处理。