Один подход - ( Не позаботился о логике All
):
this.info.filter(
item => Object.values(item.category_data).some(
cat => this.cat_array.includes(cat))
)
Демо :
var info = [
{
"id": 1,
"title": "Title one",
"category_data": {
"2": "Team",
"7": "Queries"
}
},
{
"id": 2,
"title": "Title two",
"category_data": {
"2": "Team",
"7": "Queries"
}
},
{
"id": 3,
"title": "Title three",
"category_data": {
"2": "Team",
"7": "Queries"
}
},
{
"id": 4,
"title": "Title four",
"category_data": {
"2": "Team",
"7": "Queries"
}
},
{
"id": 5,
"title": "Title five",
"category_data": {
"2": "Team",
"6": "Questions",
"7": "Queries"
}
},
{
"id": 6,
"title": "Title six",
"category_data": {
"2": "Team",
"6": "Questions",
"7": "Queries",
"12": "Fax",
}
}
]
var cat_array = ["Questions"]
console.log(
info.filter(
item => Object.values(item.category_data).some(
cat => cat_array.includes(cat)
)
)
)