Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于属性值比较两个对象数组并返回匹配的_Javascript_Arrays - Fatal编程技术网

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: