0

JavaScript: Копирование массива в новый массив

20

Проблема с копированием массива в JavaScript

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

Например, у меня есть следующий код:

old = ["Яблоки", "Бананы"];
newArray = old;

newArray.reverse();

В результате, старый массив также изменяется и поворачивается.

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

Как правильно скопировать массив в JavaScript, чтобы изменения в новом массиве не затрагивали старый?

1 ответ(ов)

0

Попробуйте использовать следующий код:

newArray = oldArray.slice(0);

Этот метод создаст поверхностную копию массива oldArray, сохранив его элементы в новом массиве newArray. Обратите внимание, что это работает только для одномерных массивов. Если ваш массив содержит вложенные объекты, вам может понадобиться сделать глубокую копию, чтобы избежать изменения оригинальных объектов.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь