Исходя из вашего комментария к ответу, решение вашей (реальной) проблемы должно заключаться в том, чтобы не перемещать объекты. Изменчивость может быть очень очень дорогой (в конечном итоге, чрезмерно), когда речь идет о поддержке приложения.
Просто создайте новые объекты:
const firstObject = {
prop1: 'some value',
prop2: {
prop3: 'some value',
prop4: [1,2,3,4]
}
}
// don't do
const secondObject = { }
secondObject.prop2.prop4 = firstObject.prop2.prop4
// instead do
const secondObject = { ... }
const newObject = {
...secondObject,
prop2: {
...secondObject.prop2,
prop4: firstObject.prop2.prop4
}
}
Возможно, вы захотите взглянуть на неизменный js.