I am getting output is 5 but I was assuming 3. what is the logic behind and how can I make output 3.
const obj = {
a: 1,
b: 2,
c: {
p: 3
}
}
const obj1 = { ...obj}
obj.c.p = 5
console.log(obj1.c.p)
I am getting output is 5 but I was assuming 3. what is the logic behind and how can I make output 3.
const obj = {
a: 1,
b: 2,
c: {
p: 3
}
}
const obj1 = { ...obj}
obj.c.p = 5
console.log(obj1.c.p)
The above only clones the first level, so changing obj
's deep attribute will change the reference in obj1
const obj = {
a: 1,
b: 2,
c: { p: 3 }
};
const obj1 = { ...obj, c: {...obj.c} };
obj.c.p = 5;
console.log(obj1.c.p);
obj
spreaded to obj1
but object in c
property stays same, e.g. c
is a same object.
Can deeply clone object like this
const obj1 = JSON.parse(JSON.stringify(obj))