Если ваши массивы не огромны (см. Ниже), вы можете использовать метод массива push()
, к которому вы хотите добавить значения. push()
может принимать несколько параметров, поэтому вы можете использовать его метод apply()
для передачи массива значений, которые будут отображаться в виде списка параметров функции. Это имеет преимущество перед использованием concat()
добавления элементов в массив вместо того, чтобы создавать новый массив.
Однако, похоже, что для больших массивов (порядка 100 000 членов или более) этот трюк может не работать. Для таких массивов использование цикла является лучшим подходом. См. https://stackoverflow.com/a/17368101/96100.
var newArray = [];
newArray.push.apply(newArray, dataArray1);
newArray.push.apply(newArray, dataArray2);
Вы можете обобщить это в функцию:
function pushArray(arr, arr2) {
arr.push.apply(arr, arr2);
}
... или добавить его в Array
«s прототип:
Array.prototype.pushArray = function(arr) {
this.push.apply(this, arr);
};
var newArray = [];
newArray.pushArray(dataArray1);
newArray.pushArray(dataArray2);
... или эмулировать оригинал push()
, разрешив несколько параметров с использованием того факта, что concat()
, например push()
, допускает множество параметров:
Array.prototype.pushArray = function() {
this.push.apply(this, this.concat.apply([], arguments));
};
var newArray = [];
newArray.pushArray(dataArray1, dataArray2);
Вот версия петли на основе последнего примера, подходит для больших массивов и всех основных браузерах, включая IE < = 8:
Array.prototype.pushArray = function() {
var toPush = this.concat.apply([], arguments);
for (var i = 0, len = toPush.length; i < len; ++i) {
this.push(toPush[i]);
}
};
Посмотреть этот адрес http://stackoverflow.com/questions/ 351409/appending-to-array –
Это должен быть ответ https://davidwalsh.name/combining-js-arrays – starikovs