簡體   English   中英

如何用另一個字符串數組過濾嵌套數組?

[英]How to filter a nested array with another array of strings?

我有一個需要按技能過濾的數組,用戶正在選擇技能,我需要結果來匹配整個過濾器,而不僅僅是其中的任何一個。

[
{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
}

下面是我的代碼。 它返回所有擁有其中一項搜索技能(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 數組的每個項目都包含在用戶的技能中。 希望這對您有用:我重命名了一些變量以使其更具可讀性:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM