Рассмотрим мы имеем 2 очень большие массивы размера N и M,Javascript толчок в массив - Performance
var array1 = [1,2,3...N],
array2 = [a,b,c...M];
Какой самый оптимизированный способ толкания array2 в array1?
Использование родной JavaScript,
Array.prototype.push.apply(array1,array2)
Использование Lodash,
array1 = _.concat(array1, array2)
Как lodash делает копию исходного массива, я предполагаю, что сложность увеличится на O (N), как по сравнению с родной JavaScript. Есть ли другой оптимизированный способ push массива? Кроме того, почему очень популярная библиотека, например, lodash, не предоставляет возможность изменять существующий массив для повышения производительности?
Что касается функции lodash, я подозреваю, что '_.concat' не изменяет существующий массив, так как родной' .concat' не либо. –
(вне темы), но почему бы вам даже подумать о том, чтобы сделать это «Array.prototype.push.apply (array1, array2)» в экземпляре массива ?, вы используете только функции вызова или привязки или приложения, когда вам нужно «заимствовать» «функция из объекта« Array.prototype »для вызова на объект типа **, подобный массиву **, например' arguments'. Просто просто 'array1.concat (array2)' – Dummy
@Dummy concat создает копию исходного массива, а push не создает никакой копии и не изменяет существующий массив, поэтому производительность push должна быть лучше. – Ankush