Есть достаточно интересный кейс. Есть массив объектов, ниже в коде видно структуру.
Я хочу отфильтровать их по неявному признаку, иначе говоря по такому, которого изначально в этих объектах нет.
К тому же, criteria может содержать разное количество параметров. Ниже псевдокод, могут быть ошибки.
Важный момент, что в моей ситуации нужно отдавать только те, что содержат
только искомый скилл.
То есть, если будет
criteria = ['sport']
то функция фильтрации должна вернуть
sport && !music
A именно второй элемент массива (Viktor).
let criteria = ['sport', 'music']
let arr = [
{
name: 'Andrew',
skills: ['guitar', 'running', 'squats']
},
{
name: 'Piotr',
skills: ['running', 'drums']
},
{
name: 'Viktor',
skills: ['snowboarding', 'squats']
}
]
function filterBySkills(people, filter) {
people.filter(person => {
let groupedSkills = {
sport: false,
music: false
}
for (let skill in person.skills) {
switch (skill) {
case ('snowboarding'):
case ('squats'):
case ('running'):
groupedSkills.sport = true
break
case ('guitar'):
case ('drums'):
groupedSkills.music = true
break
}
}
// На основании чего сделать return true для функции фильтрации?
})
}