I tried to clone object and change its value inside an object inside an array of that object. But it affects the original object.
const originalObject = {
name: "John Doe",
age: 30,
arr: [
{
num: 1
}
]
};
const copiedObject = Object.assign({}, originalObject);
copiedObject.age = 31;
copiedObject.arr[0].num = 2;
console.log(originalObject); // { name: 'John Doe', age: 30, arr: [ { num: 2 } ] }
console.log(copiedObject); // { name: 'John Doe', age: 31, arr: [ { num: 2 } ] }
spread = {...originalObject};
spread.age = 32;
spread.arr[0].num = 3;
console.log(originalObject); // { name: 'John Doe', age: 30, arr: [ { num: 3 } ] }
console.log(spread); // { name: 'John Doe', age: 32, arr: [ { num: 3 } ] }
I tried both spread operator and Object.assign()
but it doesn't work. So any help is appreciated. Thanks in advance.