Javascript 在充满对象的对象中移动

Javascript 在充满对象的对象中移动,javascript,recursion,tree,Javascript,Recursion,Tree,我通过php从数据库获取数据,并通过以下方式将php数组转换为javascript: var dbarrayjs= 通过这种方式,js输出一个对象,其中数据库的每个记录本身就是一个对象。记录(我数据库的一行)由2个字符串组成。 其中一个字符串是数字列表,以“,”分隔,需要通过string.split更改为数组。另一个字符串是一个简单的数字。 其含义是描述树状系统的前身。一位数字符串是一个节点,多位数字符串包含其所有直接父节点。一个特殊的标准是,所有父母都需要通过才能确认孩子 我需要的是一种遍历这

我通过php从数据库获取数据,并通过以下方式将php数组转换为javascript:

var dbarrayjs=

通过这种方式,js输出一个对象,其中数据库的每个记录本身就是一个对象。记录(我数据库的一行)由2个字符串组成。 其中一个字符串是数字列表,以“,”分隔,需要通过string.split更改为数组。另一个字符串是一个简单的数字。 其含义是描述树状系统的前身。一位数字符串是一个节点,多位数字符串包含其所有直接父节点。一个特殊的标准是,所有父母都需要通过才能确认孩子

我需要的是一种遍历这个系统的方法,检查我是否可以访问树中的每个元素,或者是否有一个元素由于错误的前置选择而无法访问。一个简单的例子是:


编辑:2017年3月21日-我正在寻找topsort算法,但当时并不知道它。

这是图论中的一个基本算法。有一个有向图:连接只朝一个方向。如果您有一个给定的根节点,那么搜索就相当容易:对根的树进行完整遍历(深度优先或深度优先)。然后查看是否已命中所有节点

您的问题描述有点模糊:您是否只需要检测是否缺少节点?你需要识别它吗?确实,是否只有一个节点可能缺失?根据这些细节,您的实现的记帐可能需要做更多的工作

例如,如果您所要做的只是检测是否有丢失的节点,那么只需在搜索中访问节点时对节点进行计数。如果最终计数小于数据库中的节点计数,则缺少一些节点


如果必须识别丢失的节点,则必须跟踪访问过的节点。然后,您需要另一块代码来提取图中的所有节点,并报告那些不在“已访问”列表中的节点。

您必须提供一些示例测试数据和一些迄今为止尝试过的代码。提示:编写一个递归函数遍历列表,但请记住,如果对象已经被处理过,请忽略它,否则将得到一个无限循环。