JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="out"></pre>
JavaScript
let users = [
{
name: 'user 1',
services: [
{
title: 'service 1',
categories: ['category 1', 'category 2']
},
{
title: 'service 2',
categories: ['category 3', 'category 4']
},
{
title: 'service 3',
categories: ['category 5', 'category 6']
}
]
},
{
name: 'user 2',
services: [
{
title: 'service 4',
categories: ['category 7', 'category 8']
},
{
title: 'service 5',
categories: ['category 9', 'category 10']
},
{
title: 'service 6',
categories: ['category 11', 'category 12']
}
]
}
];
let filterBy = ['category 5', 'category 6']; // отфильтровать на наличие данных категорий в объекте.
const filtered = users.filter(user => filterBy.every(cat => user.services.some(service => service.categories.includes(cat))))
out.textContent = JSON.stringify(filtered, null, 4)