この質問は次のものとまったく同じです:
既存のJavaScript配列に配列を追加する方法
JavaScriptで別の配列に配列を追加するにはどうすればよいですか?
人がこの質問に答える他の方法:
私はこの質問に対する答えを探すのにしばらく時間を費やしました。時々、これらのような最も単純なものは答えを見つけるのが最も難しいので、ここに質問を追加します。うまくいけば、この ブログ投稿 のようにキーワードとフレーズがたくさんあります。他の役立つ情報でこの質問に回答するか、以下のキーワードやフレーズを編集してください。
新しい配列を返す代わりに元の配列を変更する場合は、.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));
}
これを頻繁に行う場合は、それを処理するメソッドまたは関数を作成します。
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);