问题标签 [tree-structure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
116 浏览

node.js - mongodb中的动态问答树结构

我正在寻找建立一个问答调查系统,其中一些问题将基于父问题的答案。问题的层次结构级别可以根据问题进行任意数量的深度。问题和答案将类似于此处显示的图表。

问答树模型

我正在寻找在 mongodb 和 nodejs 中构建它。我已经检查了 mongodb 中的树模型,但我对如何构建它一无所知,因为下一组问题取决于答案。问题应根据用户选择的答案显示,并且某些答案可能在其下方也有多个问题集(例如:Ans B)。

有人可以帮助我了解 mongodb 集合结构,我如何根据用户给出的先前答案查询下一组问题和答案?任何指导表示赞赏。谢谢

0 投票
1 回答
140 浏览

sql - 如何在 SQLite 触发器中使用或替换“WITH RECURSIVE”来更新树结构表

layer在 SQLite 中,我有一个名为columns的树形结构表(id, ..., parentId)。和一个普通的表称为dir(id, ..., modifiedTime)。情况是:

一旦使用新的 modifiedTime 更新了某些行,dir它们的所有父级也应该更新。保证 modifiedTime 不减少。

如果没有触发器,我可以使用此 sql 来执行此操作(通过使用 WITH RECURSIVE 子句):

但是当我将 sql 放入触发器时,UPDATE 语句会出错。阅读SQLite 官方文档后,我明白了The WITH clause cannot be used within a CREATE TRIGGER.

这就是问题

我怎样才能让触发器做我想做的事?

换句话说,如何替换触发器中的“WITH”子句?

0 投票
0 回答
70 浏览

machine-learning - 如何将树结构特征转换为矢量特征

我有一个具有多个特征的数据集,其中一个特征是分类的,但其值具有树结构。例如,如果此分类特征具有值 a、b、c、d、e、f、g、h、I、j、k。然后下图显示了值的树关系: 在此处输入图像描述

原始特征不包含这种关系(因此该特征只占一列)。现在,我想合并这种关系,但我仍然希望特征是矢量形式。
我的解决方案是:为每个节点创建一个二进制值列。所以在这个例子中,特征可以用长度为 11 的二进制向量表示。等于 e 的特征值可以表示为 <1, 1, 0,1,0,0, 0, 0,0,0,0> (如下所示)
在此处输入图像描述 其中第一个元素表示第一级 b;2nd 元素表示第二层 a;第 3、4、5、6 个元素分别表示第三级 d、e、g 和 j;第 7 个元素表示第二级 c;第 8、第 9、第 10 和第 11 个元素分别表示第三级 f、h、i 和 k。
我认为这可行的原因是你可以从这个向量表示中恢复树,所以我认为在这个转换过程中信息不会丢失。
这种转换的主要目的是我想在这个数据集上使用一些机器学习算法,所以我希望数据集提供更多信息。
我想知道这种转换是否有效,如果无效,为什么?以及是否有更好的方法来做到这一点。

0 投票
0 回答
129 浏览

typeorm - typeorm树结构中的多个父母?

我有一个使用物化路径来映射文件夹结构的应用程序。现在我想更改它,以便可以在多个位置逻辑链接文件夹(因此一个文件夹可以有多个父级)。TypeORM 有可能吗?我在文档中阅读了很多内容,但没有找到合适的。

0 投票
0 回答
96 浏览

angular - 树结构切换可见性,基于选中状态 - Angular

我正在尝试将树状结构化 JSON 显示到带有角度的复选框的嵌套列表中。

风景

我在模板中使用递归来列出所有树的节点。如果父节点复选框被选中,我无法实现的功能仅显示子节点。我知道这可以使用 jquery 来完成,但有些事情告诉我混合 angular 和 jquery 不是一个好主意,或者 angular 已经有了我不知道的工具。数据和模板文件如下所示:

0 投票
1 回答
84 浏览

javascript - 树的字符串路径 (JavaScript)

我有一个字符串格式的路径数组,如下所示:

我想将它们分组为这样的树结构:

我会想象一种调用reduce方法的递归函数。但我不知道具体是怎样的。

编辑 :

我设法接近这个解决方案。但是我仍然得到一个空对象键,当没有孩子时,我无法设法没有孩子键:

0 投票
1 回答
231 浏览

typescript - 如何在不先加载数据的情况下过滤数据?

我正在使用 nestjs-typeorm 并希望根据一些参考过滤掉嵌套数据。该代码首先加载整个数据库,然后过滤所需的结果。如何在不加载整个数据库表的情况下过滤掉所需的数据,使其更高效、更快速?

服务.ts

0 投票
2 回答
91 浏览

php - 如何获取类别、文章和子类别及其文章?

我想输出类别名称,每个类别中的子类别名称,以及每个类别和每个子类别中的文章。

输出应该是 HTML 中的 in<ul>和 inner<ul>标记。

以下是输出的样子:

HTML 输出

我有这 5 张桌子:

到目前为止,我已经制作了这个 SQL:

0 投票
1 回答
29 浏览

arrays - 如何在 MongoDB 中保留重复项的同时进行递归查找

我有一个这样的 mongo 数据库:

如您所见,数据表示树结构,但支持对同一子节点的重复引用。我正在尝试从 t1 开始递归地获取整个树,包括重复的引用。

结果将如下所示:

Mongo 网站上建议的解决方案在这里:https ://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#std-label-unwind-example 。如果没有重复引用,则此解决方案效果很好,只需稍作修改,甚至还允许递归查找。但是,在我的情况下,我需要保留重复的查找

我也考虑过使用 unwind + group 的传统解决方案。该解决方案确实保留了重复项,但我还没有弄清楚如何递归地使用它。

我还考虑过使用 mongo 网站上的解决方案来获取不重复的内容,然后使用地图将获取的数据附加到原始的 related_templates 数组中。我认为这会起作用,但它似乎不是很优雅。

是否有一个优雅/更简单的解决方案来做到这一点,我错过了?