如何深度复制包含嵌套对象和数组的对象?
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
我正在尝试实现一种在游戏管理应用程序中复制地下城的方法。
这是要复制的地牢的示例:
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