Фильтрация и вывод определенных постов
Всем здравствуйте. Ниже код, как мне обратиться к вложенным массивам и объектам к ним внутри массива и фильтровать вывод данных? К примеру мне возвращается JSON с постами разных категорий(cat1, cat2, cat3, cat7, cat8), как мне отфильтровать данные и возвращать посты только cat3 к примеру? Заранее спасибо
data
[
{
id: 1,
title: 'title1',
category:
[
{id: 1, category: 'cat1'}
{id: 2, category: 'cat2'}
{id: 3, category: 'cat3'}
]
}
{
id: 2,
title: 'title2',
category:
[
{id: 3, category: 'cat3'}
{id: 7, category: 'cat7'}
{id: 8, category: 'cat8'}
]
}
{
id: 3,
title: 'title3'
}
{
id: 4,
title: 'title4'
}
]
Ответы (1 шт):
Автор решения: Александр Сычёв
→ Ссылка
- У вас тут пропущено много запятых
Можно разбить на простые действия: пройтись по массиву - получить доступ к category - снова пройтись по массиву - записать категорию в новы массив
const data = [{
id: 1,
title: 'title1',
category: [{
id: 1,
category: 'cat1'
},
{
id: 2,
category: 'cat2'
},
{
id: 3,
category: 'cat3'
},
]
},
{
id: 2,
title: 'title2',
category: [{
id: 3,
category: 'cat3'
},
{
id: 7,
category: 'cat7'
},
{
id: 8,
category: 'cat8'
},
]
},
{
id: 3,
title: 'title3'
},
{
id: 4,
title: 'title4'
},
]
function sortCategiry2(cat) {
let arr2 = [] // создаем пустой массив
for (let item of data) { // проходим циклом
if (item.category) { // проверяем существует ли категория
for (let category of item.category) { // проходим циклом
if (category.category == cat) { // проверяем есть нужная категория
arr2.push(item) // записываем в массив
}
}
}
}
return arr2 // возвращаем массив
}
console.log(sortCategiry2('cat3'))