Javascript的嵌套集

在任何现代站点(以及较旧的站点)上,都有嵌套的结构,对象,树的层次结构。最常见的示例是目录。



今天,许多项目都使用Javascript开发。在这种情况下如何存储树结构?这就是我想谈的。



现在,我的任务是根据产品参数绘制目录的层次结构。



存在用于存储树的各种算法,并且这些算法的示例是邻接表,Matherialized Path,嵌套集和闭包表。



如果您能提供更多建议,我将很高兴听到和学习。



在为Joomla编写扩展时,我经常使用嵌套集。我是在此CMS中首次遇到此模型的。但是现在堆栈已更改,现在是Javascript。习惯仍然存在,Joomla站点也是如此。有必要将数据传输到新的服务和项目。



Internet上有很多有关嵌套集的信息,您随时可以找到它,但是,尽管如此,我还是要说一些有关此数据模型的信息。



嵌套集的重点是层次结构中的每个节点都有一个左键和一个右键对。根据它们的值,遍历该树。我认为,该算法的积极品质在于数据采样的速度。此算法没有递归。同时,要更改树结构,添加,删除和传输节点,必须重新计算所有键。



要在Javascript项目中使用嵌套集中的数据,您需要一个可与此模型一起使用的模块。



通过npm搜索我发现了其功能是从嵌套集结构中获取数据的模块,即所有按键都应该已经被固定。需要编辑结构,但是我没有找到这样的机会。



另一个问题是,在大多数情况下,数据和树结构都存储在同一个实体中,但我认为将这些东西分开会更有效。



因此,同一个类别(这些类别)可以位于不同的父项中。这将使用户能够通过深思熟虑的层次结构更快地找到所需的内容。



尽管从SEO的角度来看,将有两个具有不同URL和相同内容的页面,但这可以通过规范链接来解决。



如果这不正确,我请SEO专家纠正我。



最后,我决定编写一个模块并将其发布在npmjs.com上。



如果对某人有用,我将非常高兴。



现在,我将继续努力,并在计划中实现通过树的节点转移。



这是npm的链接,您可以在其中下载软件包



这是github的链接,您可以在其中下载源代码



文档在那里。



任何意见都将受到欢迎。



我们希望您有好的项目和有趣的任务。



All Articles