cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Empat lapisan data pokok diperoleh daripada antara muka, dan kaedah diperlukan untuk memadankan mana-mana item dalam mana-mana lapisan.

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中文网2815 hari yang lalu456

membalas semua(2)saya akan balas

  • 曾经蜡笔没有小新

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

    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

    balas
    0
  • 过去多啦不再A梦

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

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

    balas
    0
  • Batalbalas