Tengo una matriz que se obtiene de los datos de una API, me gustaría filtrar categorías si está en categoría. Estaba intentando como :
data.filter((post) => post.categories.filter((category) => if(category._id === category) return categoryno funciono para mi
Aquí están los datos de mi matriz :
export interface Post { categories: Category[] publishedAt: string _id: string _createdAt: string title: string author: { name: string image: string } comments: Comment[] description: string mainImage: { asset: { url: string } } slug: { current: string } body: [object] } export interface Category { _id: string _ref?: string title: string }y probé esto también
posts.map((post) => { post.categories.filter((category) => { if (category._ref === isCategory) return category; }); { return <Posts post={post} />; } });Cómo puedo hacerlo ?
Supongo que quieres que las publicaciones tengan una category específica. Puede filtrar las publicaciones en función de si algunas de las categorías son iguales a la identificación de category definida.
Prueba así.
{data .filter((post) => post.categories.some((cat) => cat._id === category)) .map((post) => ( <Posts post={post} /> ))}Primero necesita obtener la lista de publicaciones que tienen en la categoría de matriz la categoría dedicada. Prueba esta solución
const postsWithCategory = posts.filter((post) => post.categories.findIndex(cat => cat._ref === isCategory) !== -1); postsWithCategory.map(post => (<Posts post={post} />));