javascript - Quatre couches de données arborescentes sont obtenues à partir de l'interface et une méthode est nécessaire pour faire correspondre n'importe quel élément de n'importe quelle couche.
PHP中文网
PHP中文网 2017-05-19 10:11:14
0
2
433

Cela peut être un peu compliqué, mais les détails sont comme ceci. Une donnée est reçue de l'interface, et la structure est à peu près comme ceci :

[
    {
        id: '1',
        name: '',
        child: [
            {id: '5',
                name: 'aaa',
                child: [
                    {
                        id: '1',
                        name: 'aaa',
                        child: [
                            {
                                id: '1',
                                name: 'aaa',
                                child: [
                                    
                                ]
                            }
                        ]
                    }
                ]
            }
        ]    
    },
    {
        id: '2',
        name: '',
        child: [
            
        ]
    }
]

Chaque élément de données dans chaque couche a un identifiant indépendant, puis il y a un champ enfant correspondant à la deuxième couche de données, et la deuxième couche de données a également un champ enfant correspondant à la troisième couche de données, etc.

Existe-t-il un moyen plus efficace d'obtenir le nom correspondant à partir de ces données d'arborescence via un identifiant spécifié ? Vous recherchez une fonction wrapper

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(2)
曾经蜡笔没有小新

Sur la base de votre demande et de l'échantillon de données fourni, j'ai écrit une démo. Je ne sais pas si le symbole répond à vos exigences. Renvoyer l'objet actuel via un identifiant spécifié

    var data = 你的数据样本;
    var Result;
    function demo( data, id ) {
        for (var i = 0; i < data.length; i++) {
            if ( data[ i ].id == id ) {
                Result = data[ i ];
                break;
            }else if ( data[ i ].child.length && !Result ) {
                demo( data[ i ].child, id );
            };
        };
        return Result;
    }
    console.log(demo( data, 3 ));

Exécuter le résultat
Remarque : demo( data, id ) 中的 id doit être unique

过去多啦不再A梦

Bon chemin : récursion ;
Mauvais chemin : après l'objet JSON.Stringify, après avoir fait correspondre "id": "xx" avec l'expression régulière, récupérez la première chaîne entre "name:" et ","# 🎜 🎜#

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal