Javascript – Vier Schichten von Baumdaten werden von der Schnittstelle abgerufen, und es ist eine Methode erforderlich, um jedes Element in jeder Schicht abzugleichen.
PHP中文网
PHP中文网 2017-05-19 10:11:14
0
2
435

Es mag etwas kompliziert sein, aber die Einzelheiten sind wie folgt: A-Daten werden von der Schnittstelle empfangen und die Struktur ist ungefähr so:

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

Jedes Datenelement in jeder Ebene hat eine unabhängige ID, und dann gibt es ein untergeordnetes Feld, das der zweiten Datenebene entspricht, und die zweite Datenebene hat auch ein untergeordnetes Feld, das der dritten Datenebene entspricht usw. .

Gibt es eine effizientere Möglichkeit, den entsprechenden Namen aus diesen Baumdaten über eine angegebene ID abzurufen? Auf der Suche nach einer Wrapper-Funktion

PHP中文网
PHP中文网

认证0级讲师

Antworte allen(2)
曾经蜡笔没有小新

根据你要求和提供的数据样本,写了个demo,不知道符不符合你的要求。通过一个指定id,返回当前对象

    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 ));

运行结果
注:demo( data, id ) 中的 id 必须是唯一的

过去多啦不再A梦

正道: 递归;
歪道: 对象 JSON.Stringify 以后,用正则匹配 "id":"xx" 后,获取第一个 "name:" 和 ","之间的字符串

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage