【发布时间】:2019-03-11 16:46:04
【问题描述】:
我正在构建一个网络应用程序,它需要处理嵌套的地理数据以显示在树形视图中,但也可以搜索。原始数据如下所示:
id:1, name:UK
id:2: name: South-East, parentId: 1
id:3: name: South-West, parentId:1
id:4: name: Berkshire, parentId: 2
id:5: name: Reading, parentId: 4
我希望它看起来像这样:
id:1: name UK, children[
{id: 2, name: South-East, children:[
{id:4: name: Berkshire, children: [
{id:5: name: Reading}
]
},
{id:3: name: South-West}
]
这样每个地理位置都有一个“children”数组属性,其中包含所有子区域,每个子区域都有另一个“children”数组属性,以此类推。拥有“父”属性可能也很有意义,因此我可以从任何子项导航到其父项。
我还需要能够搜索列表 - 搜索树的每个分支可能需要一些时间,所以也许我还需要将列表保持为平面格式。
我知道我如何可以在 JavaScript 中做到这一点(可能使用 jLinq 进行过滤、分组和排序),但我不知道它会有多快。有没有人已经在 JavaScript 中尝试过,或者知道解决这个问题的任何通用算法/模式?
【问题讨论】:
-
想通了...延迟加载。我们不需要一次显示所有数据,只需要按需显示(这是一个很大的数据结构,人们会点击进入他们需要的位)。查找相关项目并在需要时将它们添加到“children”属性会更容易,而不是提前做很多事情......
-
您介意将您的解决方案作为答案发布在下面,以便我们将其从未回答列表中删除吗?谢谢。
标签: javascript algorithm