gpt4 book ai didi

javascript - 动态 Javascript 树结构

转载 作者:行者123 更新时间:2023-12-05 00:50:23 26 4
gpt4 key购买 nike

我想动态构建层次结构,每个节点创建为层次结构中的一个层/级别,具有自己的节点数组。这应该形成一个树结构。应该有一个根节点,以及未定义数量的节点和级别来构成层次结构大小。除了根节点之外,什么都不应该被修复。我不需要阅读或搜索层次结构,我需要构建它。数组应该从 {"name": "A", "children": []} 开始,并且每个新节点都将被创建为级别 {"name": "A", "children": [HERE-{"name": “A”,“ child ”:[]}]}。在子数组中,越来越深。基本上,数组在调用之前应该没有值,除了根节点。在函数调用之后,数组应该包含一个数字的所需节点,根据数据库查询的结果,每次调用可能会有所不同。每个子数组将包含一个或多个节点值。至少应该有 2 个节点级别,包括根。它最初应该是一个空白 Canvas ,即没有预定义的数组值。

最佳答案

    function Tree(name,child){
this.name = name;
this.children = child || [];
this.addNode = function (parent){
this.children = parent;
}
this.addChild = function (parentName){
this.children.push(new Tree(parentName));
}
}

var tree = new Tree("A"); // create a tree (or a portion of a tree) with root "A" and empty children
tree.addChild("B1"); // A -> B1
tree.addChild("B2"); // A -> B2
var subTree1 = new Tree("C1"); // create a sub tree
subTree1.addChild("D1"); // C1 -> D1
subTree1.addChild("D2"); // C1 -> D2
tree.children[0].addNode(subTree1); // add this sub tree under A->B1
// Tree now is: A--> B1
// C1
// D1
// D2
// B2
tree.children[1].addChild("C2");
// Tree now is: A--> B1
// C1
// D1
// D2
// B2
// C2
//tree.children[0].addChild("C4");
// Tree now is: A--> B1
// C1
// D1
// D2
// C4
// B2
// C2
console.log(JSON.stringify(tree));

输出

{
"name": "A",
"children": [
{
"name": "B1",
"children": {
"name": "C1",
"children": [
{
"name": "D1",
"children": []
},
{
"name": "D2",
"children": []
}
]
}
},
{
"name": "B2",
"children": [
{
"name": "C2",
"children": []
}
]
}
]
}

关于javascript - 动态 Javascript 树结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com