我有这种形式的数据
{
node: {
id: '2',
fields: {
slug: '/animals/bears/types/brown-bear/',
topLevelDir: 'Animals',
subDir: 'Bears',
subSubDir: 'Types'
},
frontmatter: {
title: 'Brown Bear',
description: 'blahblah'
}
}
}
基本上我想要做的是遍历此数据并创建一个动态边栏。
我希望它具有所有顶级目录都是导航的主要标题。然后单击,我希望嵌套在其中。因此,如果顶层目录具有子目录,则应创建该子目录,并将属于该子目录的所有markdown推入其中。
如果它也有一个子目录,则创建该子子目录,并将其中包含的任何markdown推入该标题中,但是我不确定该怎么做。
我是否映射数据并将所有顶级目录推送到数组中。然后遍历并将所有子目录推送到顶层目录中的数组中?我不确定逻辑会如何。
答案 0 :(得分:1)
您的数据结构很奇怪,似乎您只允许每个级别的孩子使用。
但是关于处理树状结构的数据,您应该使用递归函数。
我的问题是,这里没有树形结构:每个父级最多有一个子节点,您应该更改数据结构以使每个节点都有一个子级数组