Итак, я попробовал простой пример:
const original = [
{id: 0, color: "red"},
{id: 1, color: "blue"}
]
const copy = [...original]
copy[0] = {id:2, color:"red"}
copy[1].id = 2
console.log(original)
console.log(copy)
Полученные результаты сбивают с толку:
Array [Object { id: 0, color: "red" }, Object { id: 2, color: "blue" }]
Array [Object { id: 2, color: "red" }, Object { id: 2, color: "blue" }]
Когда я изменяю весь объект, изменение происходит только в массиве копий.
Так почему copy [1] .id = 2 на самом деле также изменил исходный массив, а не только ключ в массиве копий ??