Javascript 从深度嵌套数组中按值筛选数组

Javascript 从深度嵌套数组中按值筛选数组,javascript,arrays,json,reactjs,Javascript,Arrays,Json,Reactjs,我正在尝试对使用React的博客按类别筛选帖子。 以下是数据的外观: const posts=[ { “类别”:[ { “标题”:“tag1” }, { “标题”:“tag2” }, { “标题”:“tag3” } ], “标题”:“第一篇文章”, //这里有更多的东西 }, { “类别”:[ { “标题”:“tag2” }, { “标题”:“tag3” }, { “标题”:“tag4” }, { “标题”:“tag5” } ], “职务”:“第二职务” //这里有更多的东西 }, { “类别”

我正在尝试对使用React的博客按类别筛选帖子。 以下是数据的外观:

const posts=[
{
“类别”:[
{
“标题”:“tag1”
},
{
“标题”:“tag2”
},
{
“标题”:“tag3”
}
],
“标题”:“第一篇文章”,
//这里有更多的东西
},
{
“类别”:[
{
“标题”:“tag2”
},
{
“标题”:“tag3”
},
{
“标题”:“tag4”
},
{
“标题”:“tag5”
}
],
“职务”:“第二职务”
//这里有更多的东西
},
{
“类别”:[
{
“标题”:“tag1”
},
{
“标题”:“tag3”
},
{
“标题”:“tag4”
}
],
“职务”:“第三职务”
//这里有更多的东西
},
{
“类别”:[
{
“标题”:“tag1”
},
{
“标题”:“tag2”
},
{
“标题”:“tag4”
},
{
“标题”:“tag5”
}
],
“职务”:“第四职务”
//这里有更多的东西
}
]
我有一个名为filter的状态,它从
菜单中更新,如下所示:
const[filter,setFilter]=useState('all')

如何编写此代码块的其余部分

useffect(()=>{
如果(过滤器!==“全部”){
//我不知道该怎么办
}
}, [])

不确定是在第一个阵列上使用过滤器,还是一直使用过滤器?我已经尝试了很多方法,但都没有成功。

这就是如何过滤这样的对象:

const posts=[
{
“类别”:[
{
“标题”:“tag1”
},
{
“标题”:“tag2”
},
{
“标题”:“tag3”
}
],
“标题”:“第一篇文章”
},
{
“类别”:[
{
“标题”:“tag2”
},
{
“标题”:“tag3”
}
],
“职务”:“第二职务”
}
];
const filter=“tag1”;
const filtered=posts.filter(post=>{
返回post.categories.some(cat=>cat.title==filter)
});

console.log(过滤)看起来不需要在效果中,您可以在组件中进行筛选。还有,选择中有什么?是标签吗?@Nick是对的,如果你的数组处于状态,那么你需要的是一个基于类别而不是效果的过滤器,但是如果数组在组件中,那么你可以在组件中过滤数组。谢谢Nick!这很有道理。我现在已经开始工作了