JavaScript将对象子项合并到新对象中

4

我正在尝试合并obj的子元素以创建一个新对象。

const obj = {
  "1": {"string1": "string11"},
  "2": {"string2": "string22"},
  "3": {"string33": "string33"},
  "4": {"string44": "string144"},
};

Object.assign能够合并多个对象,可以使用以下方式实现:

Object.assign({}, obj[1], obj[2], obj[3], obj[4])

但是,如果obj是一个动态对象,更多的子对象将被添加,例如:

const obj = {
  "1": {"string1": "string11"},
  "2": {"string2": "string22"},
  "3": {"string3": "string33"},
  "4": {"string4": "string44"},
  "523": {"string5": "string55"}
  "more": {'something', "new string"}
  . . .
};

如何自动合并它们?
1个回答

4
您可以使用扩展语法,详情请参见扩展语法文档
Object.assign({}, ...Object.values(obj))

啊!谢谢你的回答。 - olo
如果使用像 for (let key in obj) { if (obj.hasOwnProperty(key)) { console.log(obj[key]); } } 这样的循环,如何合并 (obj[key]) 使用这种方式?只是好奇是否也很容易。谢谢。 - olo
1
你可以一个一个地合并。在循环之前放置let result = {},在循环内部插入 Object.assign(result, obj[key]) - Amadan
太棒了!非常感谢。 - olo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接