Hint
Consider the difference between changing a primitive value and a nested object in both the shallow and deep copies.
let original = { a: 1, b: { c: 2 } }
let shallowCopy = { ...original }
let deepCopy = JSON.parse(JSON.stringify(original))
Promise.resolve().then(() => {
shallowCopy.a = 10
shallowCopy.b.c = 20
deepCopy.a = 30
deepCopy.b.c = 40
console.log(original.a, original.b.c)
console.log(shallowCopy.a, shallowCopy.b.c)
console.log(deepCopy.a, deepCopy.b.c)
})1 2 10 20 30 40