51

如此处所述,在 javascript 中将数组 b 附加到数组 a 的快速方法是a.push.apply(a, b).

您会注意到对象 a 被使用了两次。实际上我们只想要这个push函数,并且b.push.apply(a, b)完成完全相同的事情——apply 的第一个参数为this应用的函数提供了。

我认为直接使用 Array 对象的方法可能更有意义:Array.push.apply(a, b). 但这不起作用!

我很好奇为什么不,以及是否有更好的方法来实现我的目标。push(无需调用特定数组两次即可应用该函数。)

4

4 回答 4

72

Array.prototype.push,不是Array.push

于 2013-03-16T00:41:04.383 回答
10

您也可以使用[].push.apply(a, b)较短的符号。

于 2016-05-29T21:59:47.087 回答
8

当前版本的 JS 允许您将数组解包到参数中。

var a = [1, 2, 3, 4, 5,];
var b = [6, 7, 8, 9];

a.push(...b); //[1, 2, 3, 4, 5, 6, 7, 8, 9];
于 2019-02-27T16:11:15.783 回答
4

有什么问题Array.prototype.concat

var a = [1, 2, 3, 4, 5];
var b = [6, 7, 8, 9];

a = a.concat(b); // [1, 2, 3, 4, 5, 6, 7, 8, 9];
于 2013-03-16T00:41:54.057 回答