当前位置: 代码迷 >> JavaScript >> 如何使用 JavaScript 从数组创建动态树?
  详细解决方案

如何使用 JavaScript 从数组创建动态树?

热度:9   发布时间:2023-06-05 10:20:10.0

我有一个数组,比如说A[A.A1.A2,A.A1.A3,A.B1.B2,B.B1.B2,C.C1.C2]

现在我必须创建一个树结构,如下所示使用 javascript

A
  A1
     A2
     A3
  B1
     B2
B1
  B1
    B2
C
  C1
    C2

任何人都可以给我一些想法如何做到这一点?

问候, 潘卡吉

您可以遍历字符串、拆分它们、存储项目,然后通过检查之前的数据集是否具有相同的值来遍历所有项目。 如果不是,则分配一个新节点并将下一个级别存储在levels数组中。

然后,用temp数组替换last

主要逻辑被包装在一个辅助数组中,该数组存储了关卡最后插入的节点。 这需要一个排序的数据集。

 var array = ['A.A1.A2', 'A.A1.A3', 'A.B1.B2', 'B.B1.B2', 'C.C1.C2'], tree = [], levels = [tree], last = []; array.forEach(s => { var temp = s.split('.'); temp.forEach((name, i) => { if (last[i] === name) return; levels[i].push({ name, children: levels[i + 1] = [] }); }); last = temp; }); console.log(tree);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

  相关解决方案