我有一些继承来的 JavaScript 代码。它基于 JSON 数据绘制分层树形结构(使用 D3 版本 3 库)。这段代码可以工作。我需要进行一个小修改,但如何进行修改是问题所在。我有一个叫做 treeData 的对象。treeData 是树中节点的分层列表。每个节点都有属性,例如名称、ID、深度、x、y 和 children。Children 是一个数组,它指向当前节点的子节点。因此,子节点可以有子节点,可以有子节点等等。如果我查看 treeData 对象,我会看到“根”节点,并且我会看到它有 10 个子节点。
“children”数组在结构上与“parent”相同...这显示了展开第一个子元素,我看到它有3个子元素。我的数据通常有3-4级深度。
我的挑战是需要对树中的所有节点运行函数。我确信有一种优雅的方法来做到这一点,但我不知道是什么...我需要类似于...
问题在于这只查看了一个层级,而没有遍历整个层次结构...我该如何重写代码以访问层次结构中的每个节点?
![enter image description here](https://istack.dev59.com/Ne16S.webp)
var myNode;
for (var zz = 0; zz <= treeData.children.length; zz++) {
myNode = treeData.children[zz];
collapseNode(myNode);
}
问题在于这只查看了一个层级,而没有遍历整个层次结构...我该如何重写代码以访问层次结构中的每个节点?