javascript - Empat lapisan data pokok diperoleh daripada antara muka, dan kaedah diperlukan untuk memadankan mana-mana item dalam mana-mana lapisan.
PHP中文网
PHP中文网 2017-05-19 10:11:14
0
2
429

Ia mungkin agak berbelit-belit, tetapi spesifikasinya adalah seperti ini. Data diterima daripada antara muka, dan strukturnya lebih kurang seperti ini:

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

Setiap bahagian data dalam setiap lapisan mempunyai ID bebas, kemudian terdapat medan anak sepadan dengan lapisan kedua data, dan lapisan kedua data juga mempunyai medan anak sepadan dengan lapisan ketiga data, dsb. .

Adakah terdapat cara yang lebih cekap untuk mendapatkan nama yang sepadan daripada data pokok ini melalui id yang ditentukan? Mencari fungsi pembalut

PHP中文网
PHP中文网

认证0级讲师

membalas semua(2)
曾经蜡笔没有小新

Saya menulis demo berdasarkan permintaan anda dan sampel data yang anda berikan. Saya tidak tahu sama ada ia memenuhi keperluan anda. Kembalikan objek semasa melalui id yang ditentukan

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

Hasil jalankan
Nota: demo( data, id ) 中的 id mestilah unik

过去多啦不再A梦

Cara yang betul: Rekursi;
Cara yang salah: Selepas objek JSON.Stringify, selepas memadankan "id":"xx" dengan ungkapan biasa, dapatkan rentetan pertama antara "nama:" dan ","

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan