recherche

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

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.

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中文网2770 Il y a quelques jours436

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

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:13:14

    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

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:13:14

    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 ","# 🎜 🎜#

    répondre
    0
  • Annulerrépondre