Копировать массив Javascript в новый массив - программирование
Подтвердить что ты не робот

Копировать массив Javascript в новый массив

Я хочу создать массив из существующего массива, чтобы изменить новый массив, не затрагивая старый. Я понимаю, что массивы изменяемы, и поэтому новый массив влияет на старый.

например.

old = ["Apples", "Bananas"];
new = old;

new.reverse();

Старый также был отменен.

В Python я могу просто сделать new = list(old), но выполнение new = new Array(old); ставит старый список внутри списка.

4b9b3361

Ответ 1

Вы можете использовать метод .slice:

var old = ["Apples", "Bananas"];
var newArr = old.slice(0);
newArr.reverse(); 
// now newArr is ["Bananas", "Apples"] and old is ["Apples", "Bananas"]

Array.prototype.slice возвращает неглубокую копию части массива. Предоставление 0 в качестве первого параметра означает, что вы возвращаете копию всех элементов (начиная с индекса 0)

Ответ 2

Попробуйте выполнить

newArray = oldArray.slice(0);