我有一个需要按技能过滤的数组,用户正在选择技能,我需要结果匹配整个过滤器,而不仅仅是其中的任何一个。
[
{bio: ""
community_role: ""
display_name: ""
email: ""
facebook: ""
first_name: "sophia"
headshot: ""
instagram: ""
job_title: ""
last_name: ""
linkedin: ""
mentee: false
mentor: true
organization_name: ""
skills: [
{user_id: 7, skill_id: 398, category_id: 7, skill: "Running - casual"}
{user_id: 7, skill_id: 415, category_id: 8, skill: "Conflict resolution"}
{user_id: 7, skill_id: 436, category_id: 8, skill: "Interviewing"}
{user_id: 7, skill_id: 3, category_id: 1, skill: "Advising"}
{user_id: 7, skill_id: 87, category_id: 2, skill: "Risk management"}
{user_id: 7, skill_id: 15, category_id: 1, skill: "Decision making"}
{user_id: 7, skill_id: 9, category_id: 1, skill: "Communication"}
{user_id: 7, skill_id: 391, category_id: 7, skill: "Physical fitness"}
{user_id: 7, skill_id: 414, category_id: 8, skill: "Conflict management"}
]
twitter: "twitter.link"
user_id: 1
},
{bio: ""
community_role: ""
display_name: ""
email: ""
facebook: ""
first_name: "Sarah"
headshot: ""
instagram: ""
job_title: ""
last_name: ""
linkedin: ""
mentee: false
mentor: true
organization_name: ""
skills: [
{user_id: 2, skill_id: 23, category_id: 1, skill: "Integrity"}
{user_id: 2, skill_id: 98, category_id: 2, skill: "Warehousing"}
{user_id: 2, skill_id: 9, category_id: 1, skill: "Communication"}
{user_id: 2, skill_id: 245, category_id: 4, skill: "Symfony"}
]
twitter: ""
user_id: 2
},{
bio: ""
community_role: ""
display_name: ""
email: ""
facebook: ""
first_name: "Kristin"
headshot: ""
instagram: ""
job_title: ""
last_name: ""
linkedin: ""
mentee: false
mentor: false
organization_name: ""
skills: [
{user_id: 4, skill_id: 23, category_id: 1, skill: "Integrity"}
{user_id: 4, skill_id: 245, category_id: 4, skill: "Symfony"}
{user_id: 4, skill_id: 9, category_id: 1, skill: "Communication"}
{user_id: 4, skill_id: 98, category_id: 2, skill: "Warehousing"}
]
twitter: ""
user_id: 4
}
下面是我的代码。它将返回所有具有searchSkills(sophia,sarah和kristin)之一的用户。我希望它只显示莎拉和克里斯汀。我是编码和stackoverflow的新手,希望我提供了足够的信息以寻求帮助,谢谢!
searchSkills = ['Communication', 'Integrity']
results = results.filter((v) =>
v.skills.some((skill) => searchSkills.includes(skill.skill))
);`
results = results.filter(user => searchSkills.every(searchTerm => user.skills.some(skillObj => skillObj.skill === searchTerm)))
这将确保searchSkills数组的每个项目都包含在用户的技能中。希望对您有用!我重命名了一些变量以使其更具可读性:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句