我试图列出数组中的所有元素,如您所见,Company 有三个级别,但我只编写了脚本来打印输出直到两个级别。如何进入第三级?我应该在第三个中使用的数组应该是for loop
什么?
问问题
472 次
2 回答
2
您正在寻找的是递归。
这是您的小提琴的固定版本:http: //jsfiddle.net/jEmf9/
function generateEntity(obj) {
var html = [];
var name = obj.entity;
html.push('<li>');
html.push(name);
html.push('</li>');
var arrayName = name.replace(/\s/gi, '_');
if (obj[arrayName] == undefined) {
return html.join('');
}
var entity = obj[arrayName];
for (var i = 0; i < entity.length; i++) {
html.push('<ul>');
html.push(generateEntity(entity[i]));
html.push('</ul>');
}
return html.join('');
}
于 2012-07-13T05:17:36.527 回答
0
在您的情况下,您不需要特殊的技术来访问第三级。您需要编写递归树遍历函数,以便可以渲染任意深度的树。
我在这里对您的代码进行了快速修补:http: //jsfiddle.net/rtoal/xcEa9/6/
一旦你让事情如你所愿,你就可以着手形成你的 html。众所周知,您重复使用的字符串连接+=
效率极低,但这超出了本问题的范围。:)
于 2012-07-13T05:17:28.350 回答