У меня есть многоэтапный объект javascript, подобный этому:
const source = {
prev: [],
current: {
list: [{ a: 1, b: 2, c: 3 }],
data: [{ c: 1, b: 2 }]
},
id: 12,
next: []
};
и я хотел бы создать его свежую копию.
Я знаю, что если я использую что-то вроде let copy = { ...source };
, это похоже на мелкую копию. Поэтому, если я изменю эти массивы или объекты в source
, они также изменятся в copy
.
Есть ли в любом случае, что путем деструктуризации я получаю свежую копию всех предметов? или я должен сделать это вручную для каждого уровня глубоко, как это:
copy.prev = [...source.prev]
copy.current.list = [...source.current.list]
copy.current.data= [...source.current.data]
и т. Д.