2014-01-21 2 views
0

Я хочу добавить все элементы одного массива в другой. Array.prototype.concat делает что-то подобное, но возвращает новый массив; Я хочу сохранить ссылку на тот же массив. Каков наиболее эффективный (т. Е. Эффективный) способ сделать это?Как добавить все элементы массива в другой?

+0

Что-то вроде 'array1 = array1.concat (array2);'? – tewathia

+0

@tewathia Я не хочу потерять ссылку на исходный массив. С 'concat', я больше не имею дело с тем же массивом - я получаю ссылку на новый массив. –

+0

Да, но тогда вы передаете новый массив в исходный массив (это супер-медленный, хотя, http://jsperf.com/splice-vs-push/5) – tewathia

ответ

4

Array.prototype.push.

Array.prototype.push.apply(dest, source); 

http://jsperf.com/splice-vs-push/2 заставляет меня верить, что это быстрее, чем при использовании Array.prototype.splice.

+0

NO. 'concat' и' push' предназначены для разных целей. – thefourtheye

+0

Вы ... спросите ... и ответьте ... ваш вопрос в течение 60 секунд? lol –

+0

@NicholasHazel Я ответил в то же самое время, когда я спросил. http://blog.stackoverflow.com/2012/05/encyclopedia-stack-exchange/ http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own- вопросы/ –

Смежные вопросы