在Javascript中获取subArray的长度

时间:2017-12-22 14:32:40

标签: javascript arrays json

我有一个JSON元素:

json = [
        {
            "category": "Electronic",
            "param": "param1",
            "subMenu": [
                {
                    "subCategory": "Audio & Hifi",
                    "param": "param1-1",
                    "subMenu2": [
                        {
                            "type": "JVC",
                            "param": "param1-1-1"
                        },
                        {
                            "type": "Kennwood",
                            "param": "param1-1-2"
                        },
                        {
                            "type": "Sony",
                            "param": "param1-1-3"
                        },
                        {
                            "type": "Blaupunkt",
                            "param": "param1-1-4"
                        }
                    ]
                }]}]

并且想要检索subArray subMenu和subMenu2的长度以在函数中实现它。我还没有找到准确的解决方案。

for (var i = 0; i < array.length; i++)for (var i = 0; i < subMenu.length; i++)的方法无法正常工作。长度受顶部阵列长度的限制。

查看实际操作:https://jsfiddle.net/pp4t9nw2/4/

有没有人知道如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您应该在子菜单中使用不同的变量进行循环,例如:

for (var i = 0; i < json.length; i++) {
    for (var j = 0; j < json[i].subMenu.length; j++) {
        for (var k = 0; k < json[i].subMenu[j].subMenu2.length; k++) {
            let item = json[i].subMenu[j].subMenu2[k];
            // item.type available
        }
    }
}

答案 1 :(得分:0)

我不知道你在这之后会发生什么,但是如果你想知道顶级subMenu中有多少元素,那么json [0] .subMenu.length就可以了。

你可以遍历json(注意你已经将它称为json,而不是代码建议的数组),然后对于那里的每个元素,你可以得到json [iterator] .subMenu.length

如果你想循环遍历subMenu2,你需要第二个循环,但要确保使用不同的迭代器变量。

答案 2 :(得分:-2)

在此示例中,您需要对proMenu2进行检测。 例如: json.subMenu.subMenu2.length

但是subMenu确实没有长度,因为只有subMenu2在其中。

希望我能提供帮助。