以下代码构建了具有3个固定级别(3个节点)的节点层次结构:
function createNode(name) {
return({name: name, children: []});
}
function addChild(node, child) {
node.children.push(child);
return node;
}
var tree = createNode("");
var subChild = createNode("");
addChild(subChild, createNode("A31"));
addChild(tree, subChild);
如何更改此代码,以便不修复层次结构中创建的级别数。如何使节点的创建动态化,因为节点的数量是未知的,并且将根据传递的一些数据而变化。如何完成以便可以动态构建和定义层次结构大小。可以在上面的代码中应用循环来实现这个目标吗?
答案 0 :(得分:1)
/**
* 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)])])");
我希望它可以帮到你。