比较或检查两个不同对象数组的最佳算法或方法是什么,如果根据我的问题存在匹配项,则返回数据。我有一个对象数组,在下图中是包含技能数组的工作。我有一系列技能,其中包含技能,我想检查是否存在技能数组中的任何技能是否存在于工作技能中。如果工作中存在技能数组中的任何技能,则仅返回匹配技能的工作。我希望只返回具有一系列技能的匹配技能的工作。它将检查工作中是否存在技能数组中的任何项目,如果存在一个或多个,则它将返回匹配的工作。谢谢,
工作(包含技能数组的对象数组)
技能(技能数组)
获取工作响应的代码
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)
}
最佳答案
试试这个:
var skillObj = [
"Python",
"Photoshop",
"Java Dev",
"System Administrator",
"Software Engineer"
];
var jobObj = [{
"address": "address1",
"company": "abc",
"skills": ['Software Engineer', 'Human Resource']
},{
"address": "address2",
"company": "xyz",
"skills": ['Python', 'Photoshop']
},{
"address": "address3",
"company": "alpha",
"skills": ['Data Analyst', 'BA']
}];
var res = jobObj.filter(obj => {
return skillObj.some(r=> obj.skills.indexOf(r) >= 0);
});
console.log(res);
关于JavaScript 使用另一个数组过滤一个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54475866/