问题标签 [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.
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”子句?
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。
我认为这可行的原因是你可以从这个向量表示中恢复树,所以我认为在这个转换过程中信息不会丢失。
这种转换的主要目的是我想在这个数据集上使用一些机器学习算法,所以我希望数据集提供更多信息。
我想知道这种转换是否有效,如果无效,为什么?以及是否有更好的方法来做到这一点。
typeorm - typeorm树结构中的多个父母?
我有一个使用物化路径来映射文件夹结构的应用程序。现在我想更改它,以便可以在多个位置逻辑链接文件夹(因此一个文件夹可以有多个父级)。TypeORM 有可能吗?我在文档中阅读了很多内容,但没有找到合适的。
angular - 树结构切换可见性,基于选中状态 - Angular
我正在尝试将树状结构化 JSON 显示到带有角度的复选框的嵌套列表中。
我在模板中使用递归来列出所有树的节点。如果父节点复选框被选中,我无法实现的功能仅显示子节点。我知道这可以使用 jquery 来完成,但有些事情告诉我混合 angular 和 jquery 不是一个好主意,或者 angular 已经有了我不知道的工具。数据和模板文件如下所示:
javascript - 树的字符串路径 (JavaScript)
我有一个字符串格式的路径数组,如下所示:
我想将它们分组为这样的树结构:
我会想象一种调用reduce方法的递归函数。但我不知道具体是怎样的。
编辑 :
我设法接近这个解决方案。但是我仍然得到一个空对象键,当没有孩子时,我无法设法没有孩子键:
typescript - 如何在不先加载数据的情况下过滤数据?
我正在使用 nestjs-typeorm 并希望根据一些参考过滤掉嵌套数据。该代码首先加载整个数据库,然后过滤所需的结果。如何在不加载整个数据库表的情况下过滤掉所需的数据,使其更高效、更快速?
服务.ts
arrays - 如何在 MongoDB 中保留重复项的同时进行递归查找
我有一个这样的 mongo 数据库:
如您所见,数据表示树结构,但支持对同一子节点的重复引用。我正在尝试从 t1 开始递归地获取整个树,包括重复的引用。
结果将如下所示:
Mongo 网站上建议的解决方案在这里:https ://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#std-label-unwind-example 。如果没有重复引用,则此解决方案效果很好,只需稍作修改,甚至还允许递归查找。但是,在我的情况下,我需要保留重复的查找
我也考虑过使用 unwind + group 的传统解决方案。该解决方案确实保留了重复项,但我还没有弄清楚如何递归地使用它。
我还考虑过使用 mongo 网站上的解决方案来获取不重复的内容,然后使用地图将获取的数据附加到原始的 related_templates 数组中。我认为这会起作用,但它似乎不是很优雅。
是否有一个优雅/更简单的解决方案来做到这一点,我错过了?