在JavaScript中追加一个数组到另一个数组

这个问题是完全重复的:
如何将数组追加到现有的JavaScript数组?

你如何将一个数组附加到JavaScript中的另一个数组?

其他方式,一个人可能会提出这个问题:

  • 将数组添加到另一个
  • Concat /连接数组
  • 用另一个数组扩展数组
  • 将一个数组的内容放入另一个数组中

我花了一些时间寻找这个问题的答案。 有时最简单的这样的答案是最难find答案的,所以我希望在这里增加这个问题,用这个博客文章中的大量关键词和短语。 请随时用任何其他有用的信息回答这个问题,或编辑下面的关键词和短语。

如果您想要修改原始数组而不是返回新数组,请使用.push()

 array1.push.apply(array1, array2); array1.push.apply(array1, array3); 

我用.apply推动数组23的单个成员。

要么…

 array1.push.apply(array1, array2.concat(array3)); 

要处理大型数组,可以分批进行。

 for (var n = 0, to_add = array2.concat(array3); n < to_add.length; n+=300) { array1.push.apply(array1, to_add.slice(n, n+300)); } 

如果你做了这么多,创build一个方法或函数来处理它。

 var push_apply = Function.apply.bind([].push); var slice_call = Function.call.bind([].slice); Object.defineProperty(Array.prototype, "pushArrayMembers", { value: function() { for (var i = 0; i < arguments.length; i++) { var to_add = arguments[i]; for (var n = 0; n < to_add.length; n+=300) { push_apply(this, slice_call(to_add, n, n+300)); } } } }); 

并像这样使用它:

 array1.pushArrayMembers(array2, array3); 
 var push_apply = Function.apply.bind([].push); var slice_call = Function.call.bind([].slice); Object.defineProperty(Array.prototype, "pushArrayMembers", { value: function() { for (var i = 0; i < arguments.length; i++) { var to_add = arguments[i]; for (var n = 0; n < to_add.length; n+=300) { push_apply(this, slice_call(to_add, n, n+300)); } } } }); var array1 = ['a','b','c']; var array2 = ['d','e','f']; var array3 = ['g','h','i']; array1.pushArrayMembers(array2, array3); document.body.textContent = JSON.stringify(array1, null, 4);