【发布时间】:2021-09-24 13:50:06
【问题描述】:
我需要合并两个恰好共享相似键的对象(obj1, obj2)。
obj1 = {
0:{"Example1": "Example1"},
1:{"Example1": "Example1"},
2:{"Example1": "Example1"}
}
obj2 = {
0:{"Example2": "Example2"},
1:{"Example2": "Example2"},
2:{"Example2": "Example2"}
}
预期结果:
obj3 = {
0:{"Example1": "Example1"},
1:{"Example1": "Example1"},
2:{"Example1": "Example1"},
3:{"Example2": "Example2"},
4:{"Example2": "Example2"},
5:{"Example2": "Example2"},
}
合并两个对象时的常用方法:
const obj3 = Object.assign({}, obj1, obj2);
问题:它们确实共享许多密钥,因此在obj3 中,只能找到obj2 的内容。
我的做法:
let obj3= Object.assign({}, obj1);
for(let i=0; i<obj2.length; i++) {
obj3[obj3.length + i] = obj2[i];
}
问题:是否还有另一种更优雅的预定义方式来合并具有相似键的两个对象?
【问题讨论】:
-
为什么这些对象放在首位?它们应该是数组。
-
@Andreas,这些对象是我正在使用的真实对象的近似值,它们大致属于这种组合。
-
不要在标题中添加标签("... [JS]") -> What are tags, and how should I use them?
-
不回答问题。它们应该是数组。然后就是一个简单的
.concat() -
您应该将输入数据的实际示例添加为minimal reproducible example,以及预期的输出。
标签: javascript merge