如何深度复制包含嵌套对象和数组的对象?

How can I deep copy an objects that contains nested objects and arrays?

我正在尝试实现一种在游戏管理应用程序中复制地下城的方法。

这是要复制的地牢的示例:

attributes: { isReady: true, isMainQuest: true, color: "red", partyMax: 8 }
id: 59272
gamerMax: 12
gameId: 3
advLeveling: true
mainObjects: [0: "Treasure" 1: "BossKill"]
stats: { monsterCount: 25, treasureCount: 50, bossCount: 15 }

阅读了很多关于 Object.keys 的帖子后,我决定用它来“深度复制”我的地牢。

我最近的互动是这样的:

Object.keys(obj).forEach(function (prop) {
        console.log("obj[prop]: ", obj[prop]);
}

但在我尝试过的所有版本中,包括上面那个,它们从不深度复制嵌套数组和对象,如属性、mainObjects 和 stats。

有没有办法复制它们,无论多深?

谢谢!

您可以在 JavaScript 中使用 扩展运算符

对于你的情况,可以通过

来完成

const newObject = {...oldObject};

有关详细信息,请阅读此博客 https://medium.com/@kevinlai76/the-spread-operator-deep-and-shallow-copies-d193ac9b58bf