动态Javascript层次循环
以下代码构建了具有3个固定级别(3个节点)的节点层次结构: 如何更改此代码,以便在层次结构中创建的级别数不固定。如何使节点的创建成为动态的,因为节点的数量未知,并且会根据传递的某些数据而有所不同。如何实现,以便可以动态构建和定义层次结构大小。可以在上述代码中应用循环来实现这一点吗动态Javascript层次循环,javascript,loops,dynamic-data,javascript-objects,Javascript,Loops,Dynamic Data,Javascript Objects,以下代码构建了具有3个固定级别(3个节点)的节点层次结构: 如何更改此代码,以便在层次结构中创建的级别数不固定。如何使节点的创建成为动态的,因为节点的数量未知,并且会根据传递的某些数据而有所不同。如何实现,以便可以动态构建和定义层次结构大小。可以在上述代码中应用循环来实现这一点吗 /** * Just parses a string in a specific format * @return object * { * name, // Name of the node *
/**
* Just parses a string in a specific format
* @return object
* {
* name, // Name of the node
* childens // Array of child nodes IN STRING REPRESENTATION
* }
*/
function parseNodeStr(str) {
// @to-do
}
function createNode(defStr) {
var node = false;,
nodeParsed = parseNodeStr(defStr);
if (nodeParsed) {
node = {};
node.name = nodeParsed.name;
node.childrens = [];
for (child in nodeParsed.childs) {
addChild(node, createNode(child);
}
}
return node;
}
function addChild(node, child) {
if (child) {
node.childrens.push(child);
}
return node;
}
var node = createNode("(node1,[(node2,[(n3),(n4)])])");
我希望它能帮助您。好的,但我需要生成的层次结构及其所有数据以var treeData表示。如何做到这一点?是的:)var treeData=createNode(“(node1,[(node2,[(n3),(n4)])”;好的,我想这意味着用var treeData替换var节点(最后一行)?另外,我很难理解该做什么:函数parseNodeStr(str){/@to-do}很抱歉,我对这一级别的代码非常陌生。对于这个函数,我只说,它应该做什么,实现应该做什么(to-do)
/**
* Just parses a string in a specific format
* @return object
* {
* name, // Name of the node
* childens // Array of child nodes IN STRING REPRESENTATION
* }
*/
function parseNodeStr(str) {
// @to-do
}
function createNode(defStr) {
var node = false;,
nodeParsed = parseNodeStr(defStr);
if (nodeParsed) {
node = {};
node.name = nodeParsed.name;
node.childrens = [];
for (child in nodeParsed.childs) {
addChild(node, createNode(child);
}
}
return node;
}
function addChild(node, child) {
if (child) {
node.childrens.push(child);
}
return node;
}
var node = createNode("(node1,[(node2,[(n3),(n4)])])");