JavaScript 使用另一个数组过滤一个对象数组

标签 javascript arrays filter compare

比较或检查两个不同对象数组的最佳算法或方法是什么,如果根据我的问题存在匹配项,则返回数据。我有一个对象数组,在下图中是包含技能数组的工作。我有一系列技能,其中包含技能,我想检查是否存在技能数组中的任何技能是否存在于工作技能中。如果工作中存在技能数组中的任何技能,则仅返回匹配技能的工作。我希望只返回具有一系列技能的匹配技能的工作。它将检查工作中是否存在技能数组中的任何项目,如果存在一个或多个,则它将返回匹配的工作。谢谢,

工作(包含技能数组的对象数组)

enter image description here

技能(技能数组)

enter image description here

获取工作响应的代码

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/

相关文章:

javascript - React Hooks 与 ReactCSSTransitionGroup 不起作用

javascript - 尽管输入无效,表单仍被提交

jQuery Masonry 帮助 - 过滤器

javascript - 如何在 knockout 中向可观察数组中的对象添加属性并触发通知?

python - 如何从 pandas 数据框中获取带有日期的记录 numpy 数组?

arrays - Pandas 中 DataFrame 中行的成对 Cohen Kappa (python)

java - 如何检查二维数组中的对角邻居并将当前值设置为等于邻居数量

python - 过滤A010784序列的最快方法

ios - 我正在使用 CIFilter 获取模糊图像,但为什么输出图像总是大于输入图像?

javascript - 如何使用 jquery 验证表单?