我有一个函数可以返回一个对象(键是字符串,值是字符串数组):
{"myType1": ["123"]}
我想合并所有返回的结果,例如-如果我有:
{"myType1": ["123"]}
{"myType2": ["456"]}
{"myType1": ["789"]}
我想得到
{"myType1": ["123", "789], "myType2": ["456"]}
I've seen
Object.assign
但是不会合并其值,而只是将其替换为最新值。有没有人举例说明我如何实现这一目标?
任何帮助表示赞赏。
谢谢。
最佳答案
您可以使用Object.keys
来键对象的键。使用forEach
遍历键并修改result
对象。
var result = {};
function mergeObj(o) {
Object.keys(o).forEach(k=>{
result[k] = ( result[k] || [] ).concat(o[k]);
})
}
mergeObj({"myType1": ["123"]});
mergeObj({"myType2": ["456"]});
mergeObj({"myType1": ["789"]});
console.log(result);