Arrays 如何根据react with ES6中的属性值合并两个数组

Arrays 如何根据react with ES6中的属性值合并两个数组,arrays,reactjs,ecmascript-6,array-merge,Arrays,Reactjs,Ecmascript 6,Array Merge,我有两个阵列: a = [{"sourceId": "1", "targetId": "2", "name": "heats air"} , {"sourceId": "3", "targetId": "4", "name": "power"}] b = [{"name": "Hair Dryer", "id": "1"}, {"name": "Heating System", "id": "2"}, {"name": "Mains", "id":

我有两个阵列:

 a = [{"sourceId": "1", "targetId": "2", "name": "heats air"} , 
      {"sourceId": "3", "targetId": "4", "name": "power"}]

 b = [{"name": "Hair Dryer", "id": "1"}, 
      {"name": "Heating System", "id": "2"}, 
      {"name": "Mains", "id": "3"}, 
      {"name": "Blower", "id": "4"}]
如何获得如下输出:

[{"sourceId": "1", "targetId": "2", "name": "heats air", "from": "Hair Dryer", "to": "Heating System"}, 
 {"sourceId": "3", "targetId": "4", "name": "power","from": "Mains", "to": "Blower"]

我想根据属性值合并它们:数组a的键“sourceId”和“targetId”应该对应于数组b的键“id”。如果sourceId与id匹配,则将键为“from”的名称的值添加到数组中的对象中;如果targetId与id匹配,则将键为“to”的名称的值添加到数组a中的项中。此外,我想知道我是否可以不使用lodash来实现这一点。(使用ES6)

使用将
b
转换为
id
的a转换为
name
。然后使用
a
bMap

const a=[{“sourceId”:“1”,“targetId”:“2”,“name”:“heats air”},{“sourceId”:“3”,“targetId”:“4”,“name”:“power”}];
常量b=[{“名称”:“吹风机”,“id”:“1”},{“名称”:“加热系统”,“id”:“2”},{“名称”:“电源”,“id”:“3”},{“名称”:“鼓风机”,“id”:“4”}];
constbmap=b.reduce((映射,项)=>map.set(item.id,item.name),新映射);
const result=a.map((项)=>(Object.assign)({
发件人:bMap.get(item.sourceId),
收件人:bMap.get(item.targetId)
}(项目),;
控制台日志(结果)给你

const a=[{“sourceId”:“1”,“targetId”:“2”,“name”:“heats air”},
{“sourceId”:“3”,“targetId”:“4”,“name”:“power”}]
常量b=[{“名称”:“吹风机”,“id”:“1”},
{“名称”:“供暖系统”,“id”:“2”},
{“名称”:“电源”,“id”:“3”},
{“名称”:“鼓风机”,“id”:“4”}]
常数结果=a.reduce((arr,curr)=>{
常量from=b.filter(bObj=>{
返回bObj.id==curr.sourceId;
})[0]
常数to=b.filter(bObj=>{
返回bObj.id==curr.targetId;
})[0];
arr.push({…curr,from:from.name,to:to.name});
返回arr;
}, []);

控制台日志(结果)不清楚合并算法应该是什么,因为被合并的对象没有公共属性。如何确定哪些内容与哪些内容合并?请“用文字”说明合并算法是什么。另外,您如何确定从
应该设置为什么?数组a的键“sourceId”和“targetId”应该对应于数组b的键“id”。请编辑您的问题,将合并算法添加到您的问题中。另外,请描述如何设置
from
to
。评论不应用于要求的信息——这些信息应添加到问题本身。