У меня есть массив объектов с именем objectArray1
. Я хотел бы установить вторую переменную, objectArray2
, в значение этого первого массива, а затем иметь возможность изменить его независимо.
Вот код, который я пробовал:
var objectArray1 = [
{number:1, color:'red'},
{number:4, color:'blue'}
];
var objectArray2 = objectArray1;
objectArray2[0].number = 7;
console.log(objectArray1);
Однако, как видно из приведенного выше фрагмента, изменение значения в objectArray2
также изменяет то же значение в objectArray1
(1
изменяется на 7
).
Я нашел несколько других вопросов по стеку потока по этому поводу, таких как Установка одного объекта равным другому объекту с помощью оператора присваивания в Javascript, но все они просто об объектах, а не массивах объектов, поэтому я не смог применить их к своему делу.
Чтобы попытаться исправить мою проблему, я попробовал новый код, который, как я надеялся, будет работать лучше:
var objectArray1 = [
{number:1, color:'red'},
{number:4, color:'blue'}
];
var objectArray2 = [];
for (i = 0; i < objectArray1.length; i++) {
objectArray2.push(objectArray1[i]);
}
objectArray2[0].number = 7;
console.log(objectArray1);
Тем не менее, происходит то же самое (1
по-прежнему меняется на 7
). Как мне это решить?