0

我试图列出数组中的所有元素,如您所见,Company 有三个级别,但我只编写了脚本来打印输出直到两个级别。如何进入第三级?我应该在第三个中使用的数组应该是for loop什么?

4

2 回答 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 回答