在JavaScript中将一个数组附加到另一个数组

在JavaScript中将一个数组附加到另一个数组,javascript,arrays,concatenation,Javascript,Arrays,Concatenation,这个问题与以下问题完全相同: 如何在JavaScript中将一个数组附加到另一个数组中 一个人可以用其他方式表达这个问题: 将一个数组添加到另一个数组 Concat/连接数组 用另一个数组扩展一个数组 将一个数组的内容放入另一个数组 我花了一些时间寻找这个问题的答案。有时候像这样最简单的问题最难找到答案,所以我希望在这里添加大量的关键词和短语。请随时使用任何其他有用信息回答此问题,或编辑下面的关键字和短语。如果要修改原始数组而不是返回新数组,请使用.push() array1.push.a

这个问题与以下问题完全相同:

如何在JavaScript中将一个数组附加到另一个数组中

一个人可以用其他方式表达这个问题:

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

我花了一些时间寻找这个问题的答案。有时候像这样最简单的问题最难找到答案,所以我希望在这里添加大量的关键词和短语。请随时使用任何其他有用信息回答此问题,或编辑下面的关键字和短语。

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

array1.push.apply(array1, array2);
array1.push.apply(array1, array3);
我使用
.apply
一次推送数组
2
3
的单个成员

或者


要处理大型阵列,可以成批执行此操作

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));
}
var push\u apply=Function.apply.bind([].push);
var slice_call=Function.call.bind([].slice);
Object.defineProperty(Array.prototype,“pushArrayMembers”{
值:函数(){
for(var i=0;idocument.body.textContent=JSON.stringify(array1,null,4)回答你自己的问题是可以的,直接把答案放在问题本身是不可以的。请删除问题的答案,将其作为答案发布,并自行接受:-)。另外,其他人可能会提供更好的答案,比你的答案更准确;-)。但问题的答案应该是答案,而不是问题本身。但无论如何,这是一个很好的选择,所以我投票决定结束。搜索“javascript连接数组”还是找到了不少成功的地方。@Dave Newton:问题是如果你不知道如何使用关键字“连接”,那么你什么也找不到。我认为这就是为什么很难找到简单问题的答案。专家们喜欢“只需输入这个!”。但是,寻找这个问题答案的人不会知道使用专家知道的关键词进行搜索。@Tomasz Nurkiewicz:我可以将答案移动到“答案”部分。然而,我想给其他人一个回答问题并获得分数的机会,而不是为自己生成分数。@DutrowLLC“Append javascript array”返回的基本相同,包括和;这是你的标题/术语。我有点同情,但是在谷歌上搜索会发现这些。如果我在一个新问题中输入你的标题,它也会显示上面两个问题中的后一个;dr:
array1=[].concat(array1,array2,array3/*,…*/)是better@Alex:无法修改原始数组,这正是问题所在。当你已经有了一个数组时,最好使用
[].concat(…
),它应该是
array1.concat(array2,array3)
@斜视点,但是
array1.concat(array2,array3)
也不要像
concat()那样做
返回一个新数组。如果我不需要编辑数组本身并且可以重新分配变量,我会使用
[].concat(…)
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));
}
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);