我正在尝试列出数组中的所有元素,而as you can see公司有三个级别,但我只编写了脚本来打印输出,直到两个级别。我如何访问第三级?我应该在第三个for loop
内使用的数组应该是什么?
答案 0 :(得分: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('');
}
答案 1 :(得分:0)
在您的情况下,您不需要使用特殊技术来访问第三级。您需要编写一个递归树步行函数,以便您可以渲染任意深度的树。
我在这里快速修补了您的代码:http://jsfiddle.net/rtoal/xcEa9/6/
一旦你按照自己喜欢的方式工作,你就可以开始形成你的HTML。使用+=
重复进行字符串连接的效率非常低,但这超出了本问题的范围。 :)