Append an array to another array in JavaScript [duplicate]
If you want to modify the original array instead of returning a new array, use .push()
...
array1.push.apply(array1, array2);array1.push.apply(array1, array3);
I used .apply
to push the individual members of arrays 2
and 3
at once.
or...
array1.push.apply(array1, array2.concat(array3));
To deal with large arrays, you can do this in batches.
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));}
If you do this a lot, create a method or function to handle it.
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)); } } }});
and use it like this:
array1.pushArrayMembers(array2, array3);