javascript - Détermine la longueur des caractères et génère des données json dans une arborescence dom.
某草草
某草草 2017-05-19 10:17:12
0
2
623

Il existe un élément de données avec une telle structure. Il existe de nombreux éléments. Nous devons juger la série en fonction de la longueur du niveau et générer les données json du résultat de l'arborescence DMO. ?

Produit probablement la structure suivante, qui n'est qu'un des objets du tableau.

某草草
某草草

répondre à tous(2)
黄舟

Vous ne pouvez pas écrire de code dans cet exemple, veuillez partager vos réflexions.

Trier par niveau en premier

Créez un objet pour le résultat

Maintenir un autre tableau pour chaque niveau de liste

Puis poussez

Une question à considérer est de savoir comment y faire face si le niveau intermédiaire n'existe pas

小葫芦
    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);
}

//La solution est comme ci-dessus, le code n'est pas écrit par moi

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal