recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème de tableau multidimensionnel js

[
    {
        "id": 1,
        "name": "sys",
        "title": "系统设置",
        "type": 1,
        "status": 1,
        "condition": "",
        "pid": 0,
        "level": 0,
        "sort": 7,
        "icon": "fa-gear",
        "children": [
            {
                "id": 11,
                "name": "conf/lst",
                "title": "配置列表",
                "type": 1,
                "status": 1,
                "condition": "",
                "pid": 1,
                "level": 1,
                "sort": 50,
                "icon": null,
                "children": [
                    {
                        "id": 12,
                        "name": "conf/add",
                        "title": "添加配置",
                        "type": 1,
                        "status": 1,
                        "condition": "",
                        "pid": 11,
                        "level": 2,
                        "sort": 50,
                        "icon": null,
                        "children": []
                    },
                    {
                        "id": 13,
                        "name": "conf/del",
                        "title": "配置删除",
                        "type": 1,
                        "status": 1,
                        "condition": "",
                        "pid": 11,
                        "level": 2,
                        "sort": 50,
                        "icon": null,
                        "children": []
                    },
                    {
                        "id": 14,
                        "name": "conf/edit",
                        "title": "配置编辑",
                        "type": 1,
                        "status": 1,
                        "condition": "",
                        "pid": 11,
                        "level": 2,
                        "sort": 50,
                        "icon": null,
                        "children": []
                    }
                ]
            },
            {
                "id": 9,
                "name": "conf/conf",
                "title": "配置项",
                "type": 1,
                "status": 1,
                "condition": "",
                "pid": 1,
                "level": 1,
                "sort": 50,
                "icon": null,
                "children": []
            }
        ]
    },
    {
        "id": 15,
        "name": "admin",
        "title": "管理员",
        "type": 1,
        "status": 1,
        "condition": "",
        "pid": 0,
        "level": 0,
        "sort": 50,
        "icon": "fa-user",
        "children": [
            {
                "id": 16,
                "name": "admin/lst",
                "title": "管理员列表",
                "type": 1,
                "status": 1,
                "condition": "",
                "pid": 15,
                "level": 1,
                "sort": 50,
                "icon": null,
            },
            {
                "id": 27,
                "name": "authrule/lst",
                "title": "权限列表",
                "type": 1,
                "status": 1,
                "condition": "",
                "pid": 15,
                "level": 1,
                "sort": 50,
                "icon": null,
            },
            {
                "id": 30,
                "name": "authgroup/lst",
                "title": "用户组",
                "type": 1,
                "status": 1,
                "condition": "",
                "pid": 15,
                "level": 1,
                "sort": 50,
                "icon": null,
            }
        ]
    }
]

Le json ci-dessus est un tableau multidimensionnel. Je souhaite utiliser la boucle js for pour afficher le tableau sous les enfants, mais je ne sais pas pourquoi il ne peut pas être affiché et aucune erreur n'est signalée

.
$.ajax({
    type: "get",
    url: "/admin/index/menu",
    async: true,
    dataType: 'json',
    success: function(res) {
        for(var i = 0; i < res.length; i++) {
            console.log(res[i].children);    //这个能输出
            for (var a=0;a<res[i].children;a++) {
                console.log(res[i].children[a]);    //这个不能输出,也没有报错
            }
        }
    }
})

Excusez-moi, qu'est-ce qui ne va pas ?

滿天的星座滿天的星座2744 Il y a quelques jours765

répondre à tous(4)je répondrai

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:41:52

    $.ajax({
        type: "get",
        url: "/admin/index/menu",
        async: true,
        dataType: 'json',
        success: function(res) {
            for(var i = 0; i < res.length; i++) {
                console.log(res[i].children);
                for (var a = 0; a < res[i].children.length; a++) { // <-- 此处少了.length,数字和对象比较大小,结果为false,第二个条件一次也满足不了
                    console.log(res[i].children[a]);
                }
            }
        }
    }

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:41:52

    a<res[i].children -> a<res[i].children.length

    répondre
    0
  • 怪我咯

    怪我咯2017-07-05 10:41:52

    Même si je suis en retard, je pense que je peux ajouter autre chose

    De manière générale, je préfère personnellement utiliser foreach traversal, en JS (prendre le code de cet exemple comme exemple)

    res.forEach(r => {
        r.children.forEach(c => {
            // do something
        });
    });

    La fonction flèche d'es6 est utilisée ci-dessus. Si vous souhaitez l'écrire en es5, changez-la simplement en expression de fonction

    .

    répondre
    0
  • 学习ing

    学习ing2017-07-05 10:41:52

    Cela devrait être une récursion. Il est recommandé de comprendre la connaissance de la récursion
    Parcours récursif des nœuds

    répondre
    0
  • Annulerrépondre