访问Javascript对象中的第三级

时间:2012-07-13 04:28:39

标签: javascript arrays json

我正在尝试列出数组中的所有元素,而as you can see公司有三个级别,但我只编写了脚本来打印输出,直到两个级别。我如何访问第三级?我应该在第三个for loop内使用的数组应该是什么?

2 个答案:

答案 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。使用+=重复进行字符串连接的效率非常低,但这超出了本问题的范围。 :)