javascript - 多级数组的搜索实现
问题描述
我有如下 JSON。
const testData = [
{
menu: 'Test',
submenu: [
{
menu: 'Test1',
submenu: [
{
menu: 'Test1.1',
},
{
menu: 'Test1.2',
},
{
secondLevel: [
{
menu: 'Test1.3',
submenu: [
{
menu: 'Test1.4',
},
{
menu: 'Test1.5',
},
],
},
],
},
],
},
我已经使用reduce函数来遍历搜索像Test1.1这样的预期单词我得到了正确的值,而在搜索时Test1.4没有正确出现,因为它具有secondLevel作为父对象。我使用的代码如下,stackoverflow 中建议使用该代码。
function search(data, value) {
return data.reduce((r, e) => {
const object = { ...e }
const result = search(e.submenu || [], value)
if (result.length) object.submenu = result
if (e.menu == value || result.length) r.push(object)
return r;
}, [])
}
请建议在 secondLevel 对象中搜索元素的最佳方法。提前致谢
解决方案
推荐阅读
- python - Python:如何在保存了原始索引的列表的所有元素之间获得差异
- php - 当我尝试在购物车中添加产品时,将显示错误。产品将添加到购物车中,但购物车未显示。试图获取非对象的属性“图像”
- python - AWS - Codebuild 失败的问题
- linux - CMake 项目未通过 Visual Studio 2022 在 WSL2 上加载
- python - 以编程方式设置气流中的连接/变量
- vb.net - 如何在 vb.net 中为背景色属性设置透明度效果
- mysql - 添加具有数字名称的列时出错
- django - 在 django orm 中使用 annotate() 在 MariaDB 服务器上运行 hasrsine 公式
- python - 为什么'return'不会破坏嵌套在函数中的循环?
- python - 如何保留 Azure Cosmos DB 连续令牌