Как отфильтровать вложенный массив объектов
Всем привет, есть массив объектов представим его как:
const arr = [{
var: 'value',
var2: 'value2',
projects: [{
name: 'Project 1',
id: 1,
}],
var3: 'value3',
group: [{
name: 'value',
id: 1,
}],
},
{
var: 'value',
var2: 'value2',
projects: [{
name: 'Project 2',
id: 1,
}],
var3: 'value3',
group: [{
name: 'value',
id 1,
}
]
Необходимо отфильтровать его относительно свойству name, во вложенных массивах объектов, например по массиву project я должен получить только Project 1, причем не просто:
projects: [{
name: 'Project 1',
id: 1,
}],
А весь объект:
{
var: 'value',
var2: 'value2',
projects: [{
name: 'Project 1',
id: 1,
}],
var3: 'value3',
group: [{
name: 'value',
id: 1,
}],
},
Так же возможно два фильтра ещё по group.
Второй день пытаюсь это сделать, без результата, спасибо.
Ответы (1 шт):
Автор решения: Stepan Kasyanenko
→ Ссылка
Для поиска можно использовать метод find.
const arr = [{
var: 'value',
var2: 'value2',
projects: [{
name: 'Project 1',
id: 1,
}],
var3: 'value3',
group: [{
name: 'value',
id: 1,
}],
},
{
var: 'value',
var2: 'value2',
projects: [{
name: 'Project 2',
id: 1,
}],
var3: 'value3',
group: [{
name: 'value',
id: 1,
}],
}
];
const projet1 = arr.find(f => f.projects?.some(s => s.name === 'Project 1'));
console.log(projet1);