JavaScript使用另一个数组过滤一个对象数组
在比较或检查两个不同的对象数组并返回数据时,最好的算法或方法是什么。我有一个对象数组,在下面的图片上是包含技能数组的作业。我有一系列的技能,其中包含了技能,我想检查技能系列中的任何技能是否存在于工作技能中。如果技能数组中的任何技能存在于工作中,那么只返回与技能匹配的工作。我希望,只有从一系列技能中获得匹配技能的工作才会返回。它将检查作业中是否存在技能数组中的任何项目,如果甚至存在一个或多个项目,它将返回匹配的作业。谢谢 作业(包含技能数组的对象数组) 技能(技能数组) 获取工作响应的代码 工作技能JavaScript使用另一个数组过滤一个对象数组,javascript,arrays,filter,compare,Javascript,Arrays,Filter,Compare,在比较或检查两个不同的对象数组并返回数据时,最好的算法或方法是什么。我有一个对象数组,在下面的图片上是包含技能数组的作业。我有一系列的技能,其中包含了技能,我想检查技能系列中的任何技能是否存在于工作技能中。如果技能数组中的任何技能存在于工作中,那么只返回与技能匹配的工作。我希望,只有从一系列技能中获得匹配技能的工作才会返回。它将检查作业中是否存在技能数组中的任何项目,如果甚至存在一个或多个项目,它将返回匹配的作业。谢谢 作业(包含技能数组的对象数组) 技能(技能数组) 获取工作响应的代码 工
试试这个:
var skillObj=[
“Python”,
“Photoshop”,
“Java开发”,
“系统管理员”,
“软件工程师”
];
var jobObj=[{
“地址”:“地址1”,
“公司”:“abc”,
“技能”:[“软件工程师”、“人力资源”]
},{
“地址”:“地址2”,
“公司”:“xyz”,
“技能”:['Python','Photoshop']
},{
“地址”:“地址3”,
“公司”:“阿尔法”,
“技能”:[‘数据分析师’、‘BA’]
}];
var res=jobj.filter(obj=>{
返回skillObj.some(r=>obj.skills.indexOf(r)>=0);
});
控制台日志(res)代码>
data.jobs_data(me, params, token).then(function (response) {
me.record.is_searching = false
if (response.status == "200") {
me.records.jobs = response.data.data
console.log("Jobs:", me.records.jobs)
var count = response.data.count
count = count + 1
me.setKeyWords(me.filters)
Pagination.init(me, count)
$timeout(function () {
me.record.is_searching = false
}, 400)
}
})
me.load_job_details = function (detail) {
console.log("Skills :" , me.record.job_detail.skills)
}