Javascript 基于属性值比较两个对象数组并返回匹配的
嗨,我有两个对象数组,我的目标是比较它们并过滤掉匹配的结果 我的数据是这样的Javascript 基于属性值比较两个对象数组并返回匹配的,javascript,arrays,Javascript,Arrays,嗨,我有两个对象数组,我的目标是比较它们并过滤掉匹配的结果 我的数据是这样的 let data1 = [ { name:'tom', process:'flipkart', master:'pharma', profiles: [ { level:'begginer', language:'hindi',
let data1 = [
{
name:'tom',
process:'flipkart',
master:'pharma',
profiles: [
{
level:'begginer',
language:'hindi',
role:['flp_admin','flp_teacher']
}
]
},
{
name:'jeo',
process:'amazon',
master:'science',
profiles: [
{
level:'begginer',
language:'english',
role:['amz_admin']
}
]
},
{
name:'jerry',
process:'email',
master:'it',
profiles: [
{
level:'begginer',
language:'urdu',
role:['eml_teacher']
}
]
}
]
let data2 = [
{
masterName:'Pharma',
businessProcess: [
{ label:'flipkart', value:'flipkart' },
{ label:'amazon', value:'amazon' }
]
},
{
masterName:'science',
businessProcess: [
{ label:'flipkart', value:'flipkart' },
{ label:'amazon', value:'amazon' }
]
},
{
masterName:'it',
businessProcess: [
{ label:'email', value:'email' },
{ label:'amazon', value:'amazon' }
]
}
我想比较data1和data2,如果data1的master与data2的masterName匹配,并且data1的business与data2的businessProcess.label匹配,则从data2返回匹配
有人能告诉我怎么做吗?您可以使用
数组。过滤器和数组。查找循环查找匹配的项目:
让数据1=[{
名字:“汤姆”,
流程:“flipkart”,
硕士:“制药”,
简介:[{
级别:“乞丐”,
语言:“印地语”,
角色:['flp_管理员','flp_教师']
}]
},
{
姓名:“jeo”,
进程:“amazon”,
大师:“科学”,
简介:[{
级别:“乞丐”,
语言:“英语”,
角色:['amz_admin']
}]
},
{
名字:“杰瑞”,
流程:“电子邮件”,
大师:“它”,
简介:[{
级别:“乞丐”,
语言:“乌尔都语”,
角色:[“eml_教师”]
}]
}
]
让数据2=[{
母公司名称:'制药',
业务流程:[{
标签:“flipkart”,
值:“flipkart”
},
{
标签:“亚马逊”,
价值:“亚马逊”
}
]
},
{
大师名:“科学”,
业务流程:[{
标签:“flipkart”,
值:“flipkart”
},
{
标签:“亚马逊”,
价值:“亚马逊”
}
]
},
{
大师名:“它”,
业务流程:[{
标签:“电子邮件”,
值:“电子邮件”
},
{
标签:“亚马逊”,
价值:“亚马逊”
}
]
}
];
console.log(data1.filter((d)=>{
返回数据2.find((d2)=>{
//检查数据matername是否等于data1 master
//或者如果data1.process值作为值存在于businessProcess的某个项中
返回d2.masterName==d.master | | d2.businessProcess.find(b=>b.value==d.process);
});
}));代码>尝试以下操作:或嵌套的foreach: