我有一个函数可以返回一个对象(键是字符串,值是字符串数组):

{"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);

09-28 14:50