Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我有两个数组,一个是accounts,另一个是departments 要求: ->需要比较这两个数组,并需要获得过滤后的帐户数组 ->Accounts数组是单层数组,departments数组有两层,我需要比较Accounts和department中JobTitleID的值 ->最后返回修改后的accounts数组和过滤后的数据 常量帐户=[ { 账号:25205, 候选国:8474, 职位编号:250 }, { 账号:25206, 候选人编号:8474, JobTitleID:253 },

我有两个数组,一个是accounts,另一个是departments

要求:

->需要比较这两个数组,并需要获得过滤后的帐户数组

->Accounts数组是单层数组,departments数组有两层,我需要比较Accounts和department中JobTitleID的值

->最后返回修改后的accounts数组和过滤后的数据

常量帐户=[ { 账号:25205, 候选国:8474, 职位编号:250 }, { 账号:25206, 候选人编号:8474, JobTitleID:253 }, { 账号:25232, 候选人编号:8474, JobTitleID:257 }, { 账号:25233, 候选人编号:8474, JobTitleID:261 }, { 账号:25236, 候选人编号:8474, JobTitleID:256 }, { 账号:25237, 候选人编号:8474, 职务ID:255 }, { 账号:25245, 候选人编号:8474, JobTitleID:281 }, { 账号:25246, 候选人编号:8474, JobTitleID:279 }, { 账号:25265, 候选人编号:8474, JobTitleID:362 } ] 警察部门=[ { 部门名称:生产, 职位名称:[ { JobTitleID:246, 部门编号:72, 职位名称:部门领班 }, { JobTitleID:357, 部门编号:72, 职位名称:维修主管 }, { JobTitleID:247, 部门编号:72, 职位名称:生产经理 }, { JobTitleID:362, 部门编号:72, 职位名称:安全合规主管 } ] }, { 部门名称:工程部, 职位名称:[ { JobTitleID:250, 部门编号:73, 职位名称:建筑师 }, { JobTitleID:248, 部门编号:73, 职位名称:CAD操作员 }, { JobTitleID:249, 部门编号:73, 职位名称:工程经理 }, { JobTitleID:251, 部门编号:73, 职位名称:专业工程师 } ] }, { 部门名称:采购部, 职位名称:[ { JobTitleID:253, 部门编号:74, 职位名称:采购代理 }, { JobTitleID:255, 部门编号:74, 职位名称:采购经理 }, { JobTitleID:252, 部门编号:74, 工作名称:工场领班 } ] } ] const filteredData=accounts.mapitem=>{ departments.maplevelOne=>{ levelOne.jobTitles.maplevelTwo=>{ 返回levelTwo.JobTitleID==item.JobTitleID } } }
console.log'filteredData',filteredData您可以创建部门数组中所有作业的数组,然后使用筛选帐户数组,以检查以前生成的数组中是否存在特定作业。以下是一个例子:

常量帐户=[ { 账号:25205, 候选人编号:8474, 职位编号:250 }, { 账号:25206, 候选人编号:8474, JobTitleID:253 }, { 账号:25232, 候选人编号:8474, JobTitleID:257 }, { 账号:25233, 候选人编号:8474, JobTitleID:261 }, { 账号:25236, 候选人编号:8474, JobTitleID:256 }, { 账号:25237, 候选人编号:8474, 职务ID:255 }, { 账号:25245, 候选人编号:8474, JobTitleID:281 }, { 账号:25246, 候选人编号:8474, JobTitleID:279 }, { 账号:25265, 候选人编号:8474, JobTitleID:362 } ] 警察部门=[ { 部门名称:生产, 职位名称:[ { JobTitleID:246, 部门编号:72, 职位名称:部门领班 }, { JobTitleID:357, 部门编号:72, 职位名称:维修主管 }, { JobTitleID:247, 部门编号:72, 职位名称:生产经理 }, { JobTitleID:362, 部门编号:72, 职位名称:安全合规主管 } ] }, { 部门名称:工程部, 职位名称:[ { JobTitleID:250, 部门编号:73, 职位名称:建筑师 }, { JobTitleID:248, 部门编号:73, 职位名称:CAD操作员 }, { JobTitleID:249, 部门编号:73, 职位名称:工程经理 }, { JobTitleID:251, 部门编号:73, 职位名称:专业工程师 } ] }, { 部门名称:采购部, 职位名称:[ { JobTitleID:253, 部门编号:74, 职位名称:采购代理 }, { JobTitleID:255, 部门编号:74, 职位名称:采购经理 }, { JobTitleID:252, 部门编号:74, 工作名称:工场领班 } ] } ] const jobs=departments.red ucea,c=>a.concatc.jobTitles,[]; const results=accounts.filteraccount=>jobs.somejob=>job.JobTitleID==account.JobTitleID;
控制台。日志结果 您可以创建部门数组中所有作业的数组,然后使用筛选帐户数组,以检查以前生成的数组中是否存在特定作业。以下是一个例子:

常量帐户=[ { 账号:25205, 候选人编号:8474, 职位编号:250 }, { 账号:25206, 候选人编号:8474, JobTitleID:253 }, { 账号:25232, 候选人编号:8474, JobTitleID:257 }, { 账号:25233, 候选人编号:8474, JobTitleID:261 }, { 账号:25236, 候选人编号:8474, JobTitleID:256 }, { 账号:25237, 候选人编号:8474, 职务ID:255 }, { 账号:25245, 候选人编号:8474, JobTitleID:281 }, { 账号:25246, 候选人编号:8474, JobTitleID:279 }, { 账号:25265, 候选人编号:8474, JobTitleID:362 } ] 警察部门=[ { 部门名称:生产, 职位名称:[ { JobTitleID:246, 部门编号:72, 职位名称:部门领班 }, { JobTitleID:357, 部门编号:72, 职位名称:维修主管 }, { JobTitleID:247, 部门编号:72, 职位名称:生产经理 }, { JobTitleID:362, 部门编号:72, 职位名称:安全合规主管 } ] }, { 部门名称:工程部, 职位名称:[ { JobTitleID:250, 部门编号:73, 职位名称:建筑师 }, { JobTitleID:248, 部门编号:73, 职位名称:CAD操作员 }, { JobTitleID:249, 部门编号:73, 职位名称:工程经理 }, { JobTitleID:251, 部门编号:73, 职位名称:专业工程师 } ] }, { 部门名称:采购部, 职位名称:[ { JobTitleID:253, 部门编号:74, 职位名称:采购代理 }, { JobTitleID:255, 部门编号:74, 职位名称:采购经理 }, { JobTitleID:252, 部门编号:74, 工作名称:工场领班 } ] } ] const jobs=departments.reducea,c=>a.concatc.jobTitles,[]; const results=accounts.filteraccount=>jobs.somejob=>job.JobTitleID==account.JobTitleID;
控制台。日志结果 您可以使用Set object获得优化解决方案。Set对象仅存储任何类型的唯一值。首先,使用departments数组中的set对象获取所有唯一的JobTitleID。然后使用Array.prototype.filter方法过滤accounts数组以获得结果

常量帐户=[ { 账号:25205, 候选人编号:8474, JobTitleID:250, }, { 账号:25206, 候选人编号:8474, JobTitleID:253, }, { 账号:25232, 候选人编号:8474, JobTitleID:257, }, { 账号:25233, 候选人编号:8474, JobTitleID:261, }, { 账号:25236, 候选人编号:8474, JobTitleID:256, }, { 账号:25237, 候选人编号:8474, JobTitleID:255, }, { 账号:25245, 候选人编号:8474, JobTitleID:281, }, { 账号:25246, 候选人编号:8474, JobTitleID:279, }, { 账号:25265, 候选人编号:8474, JobTitleID:362, }, ]; 警察部门=[ { 部门名称:“生产”, 职位名称:[ { JobTitleID:246, 部门编号:72, 职位名称:“部门领班”, }, { JobTitleID:357, 部门编号:72, 作业名称:“维护主管”, }, { JobTitleID:247, 部门编号:72, JobName:'生产经理', }, { JobTitleID:362, 部门编号:72, 工作名称:“安全与合规主管”, }, ], }, { 部门名称:“工程”, 职位名称:[ { JobTitleID:250, 部门编号:73, JobName:“架构师”, }, { JobTitleID:248, 部门编号:73, 作业名称:“CAD操作员”, }, { JobTitleID:249, 部门编号:73, 职位名称:“工程经理”, }, { JobTitleID:251, 部门编号:73, 职位名称:“专业工程师”, }, ], }, { 部门名称:“采购”, 职位名称:[ { JobTitleID:253, 部门编号:74, JobName:'采购代理', }, { JobTitleID:255, 部门编号:74, 职位名称:“采购经理”, }, { JobTitleID:252, 部门编号:74, 工作名称:“工场领班”, }, ], }, ]; 常量集=新集; departments.forEachx=>x.jobTitles.forEachy=>set.addy.J 闭孔; const ret=accounts.filterx=>set.hasx.JobTitleID;
console.logret 您可以使用Set object获得优化解决方案。Set对象仅存储任何类型的唯一值。首先,使用departments数组中的set对象获取所有唯一的JobTitleID。然后使用Array.prototype.filter方法过滤accounts数组以获得结果

常量帐户=[ { 账号:25205, 候选人编号:8474, JobTitleID:250, }, { 账号:25206, 候选人编号:8474, JobTitleID:253, }, { 账号:25232, 候选人编号:8474, JobTitleID:257, }, { 账号:25233, 候选人编号:8474, JobTitleID:261, }, { 账号:25236, 候选人编号:8474, JobTitleID:256, }, { 账号:25237, 候选人编号:8474, JobTitleID:255, }, { 账号:25245, 候选人编号:8474, JobTitleID:281, }, { 账号:25246, 候选人编号:8474, JobTitleID:279, }, { 账号:25265, 候选人编号:8474, JobTitleID:362, }, ]; 警察部门=[ { 部门名称:“生产”, 职位名称:[ { JobTitleID:246, 部门编号:72, 职位名称:“部门领班”, }, { JobTitleID:357, 部门编号:72, 作业名称:“维护主管”, }, { JobTitleID:247, 部门编号:72, JobName:'生产经理', }, { JobTitleID:362, 部门编号:72, 工作名称:“安全与合规主管”, }, ], }, { 部门名称:“工程”, 职位名称:[ { JobTitleID:250, 部门编号:73, JobName:“架构师”, }, { JobTitleID:248, 部门编号:73, 作业名称:“CAD操作员”, }, { JobTitleID:249, 部门编号:73, 职位名称:“工程经理”, }, { JobTitleID:251, 部门编号:73, 职位名称:“专业工程师”, }, ], }, { 部门名称:“采购”, 职位名称:[ { JobTitleID:253, 部门编号:74, JobName:'采购代理', }, { JobTitleID:255, 部门编号:74, 职位名称:“采购经理”, }, { JobTitleID:252, 部门编号:74, 工作名称:“工场领班”, }, ], }, ]; 常量集=新集; departments.forEachx=>x.jobTitles.forEachy=>set.addy.JobTitleID; const ret=accounts.filterx=>set.hasx.JobTitleID; console.logret;