在JavaScript中追加一个数组到另一个数组
这个问题是完全重复的:
如何将数组追加到现有的JavaScript数组?
你如何将一个数组附加到JavaScript中的另一个数组?
其他方式,一个人可能会提出这个问题:
- 将数组添加到另一个
- Concat /连接数组
- 用另一个数组扩展数组
- 将一个数组的内容放入另一个数组中
我花了一些时间寻找这个问题的答案。 有时最简单的这样的答案是最难find答案的,所以我希望在这里增加这个问题,用这个博客文章中的大量关键词和短语。 请随时用任何其他有用的信息回答这个问题,或编辑下面的关键词和短语。
如果您想要修改原始数组而不是返回新数组,请使用.push()
…
array1.push.apply(array1, array2); array1.push.apply(array1, array3);
我用.apply
推动数组2
和3
的单个成员。
要么…
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);