javascript - Tentukan panjang aksara dan hasilkan data json dalam struktur pepohon dom.
某草草
某草草 2017-05-19 10:17:12
0
2
577

Terdapat sekeping data dengan struktur sedemikian. Kita perlu menilai tahap mengikut panjang tahap dan menjana data json hasil pepohon DMO. ?

Mungkin menghasilkan struktur berikut, yang merupakan salah satu objek tatasusunan.

某草草
某草草

membalas semua(2)
黄舟

Anda tidak boleh menulis kod dalam contoh ini, sila kongsi pendapat anda.

Isih mengikut tahap dahulu

Buat objek untuk hasilnya

Kekalkan tatasusunan lain untuk setiap peringkat senarai

Kemudian tolak

Persoalan yang perlu difikirkan ialah bagaimana menanganinya sekiranya peringkat pertengahan tidak wujud

小葫芦
    var dataJson2= [{"name":"测试2","id":"1","level": "00001"},  //5位数代表1级,10位数代表2级,以此类推
                 {"name":"**a","id":"1","level": "0000100001"},
                 {"name":"***a","id":"1","level":"000010000100001"},
                 {"name":"***a","id":"1","level":"000010000100002"},
                 {"name":"***a","id":"1","level":"000010000100003"},
                 {"name":"**a","id":"1","level": "0000100002"},
                 {"name":"**a","id":"1","level": "0000100003"},
                 {"name":"*b","id":"1","level":  "00002"}]

addTree(dataJson2);
function addTree(treeData) {
    var sortLenght=treeData[0].level.length;
    //排序
    var myArr = [];
        for(var i = 0; i < treeData.length; i++) {
            var thisIndex = treeData[i].level.length / sortLenght - 1;
            if(myArr[thisIndex] === undefined) {
                myArr[thisIndex] = []
            }
            myArr[thisIndex].push(i)
        }

            //组成梯形
    var ladderArr = [];
        for(var i = myArr.length - 1; i >= 0; i--) {
            switch(i) {
                case 0:
                    for(var l = 0; l < myArr[i].length; l++) {
                        ladderArr.push(treeData[myArr[i][l]])
                    }
                    break;
                default:
                    for(var j = 0; j < myArr[i].length; j++) {
                        var str = treeData[myArr[i][j]].level.substr(0, i * sortLenght);
                        for(var k = 0; k < myArr[i - 1].length; k++) {
                            if(treeData[myArr[i - 1][k]].level === str) {
                                if(treeData[myArr[i - 1][k]].list === undefined) treeData[myArr[i - 1][k]].list = [];
                                treeData[myArr[i - 1][k]].list.push(treeData[myArr[i][j]])
                            }
                        }
                    }
            }
        }

    var treeJson=eval(ladderArr);
}

//Penyelesaian adalah seperti di atas, kod tidak ditulis oleh saya

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