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.
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
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
//Penyelesaian adalah seperti di atas, kod tidak ditulis oleh saya