2014-11-05 3 views
0

jqtree 플러그인을 사용하여 트 리뷰를 생성하고 있습니다. 이제 레이블을 통해 모든 노드의 트리를 정렬하려고합니다.Jqtree - 주문 항목

플러그인은 정렬 기능이 없으므로 데이터를로드하기 전에 정렬해야한다고 생각합니다.

내 데이터를 정렬하는 것입니다. 어떤 제안에 대한

[ 
{ 
    "label": "A label", 
    "id": "201", 
    "children": [ 
     { 
      "label": "C Label", 
      "id": "40773", 
      "children": [ 
       { 
        "label": "F label", 
        "id": "222460", 
        "children": [] 
       }, 
       { 
        "label": "C label", 
        "id": "222469", 
        "children": [] 
       }, 
       { 
        "label": "X label", 
        "id": "27512", 
        "children": [ 
         { 
          "label": "F label", 
          "id": "143546", 
          "children": [] 
         }, 

         { 
          "label": "D label", 
          "id": "141341", 
          "children": [ 
           { 
            "label": "G label", 
            "id": "222456", 
            "children": [] 
           }, 
           { 
            "label": "L label", 
            "id": "222457", 
            "children": [] 
           }, 
           { 
            "label": "x label", 
            "id": "222443", 
            "children": [ 
             { 
              "label": "Z label", 
              "id": "222447", 
              "children": [] 
             }, 
             { 
              "label": "A label", 
              "id": "222446", 
              "children": [] 
             } 
            ] 
           }, 
           { 
            "label": "L label", 
            "id": "222455", 
            "children": [] 
           } 
          ] 
         }, 
         { 
          "label": "A label", 
          "id": "143547", 
          "children": [ 
           { 
            "label": "B label", 
            "id": "222458", 
            "children": [] 
           } 
          ] 
         }, 
         { 
          "label": "R label", 
          "id": "143548", 
          "children": [] 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

]

많은 감사합니다.

답변

1

트리를 정렬하고 정렬 알고리즘을 반복하는 재귀 함수를 사용하여 정렬 할 수 있습니다.

recursiveSortByLabel(arr); //arr = the array with your tree data 
function recursiveSortByLabel(obj){ 
    if(obj.length > 0){ 
     for(var i in obj){ 
      if(obj[i].children.length > 0) 
       recursiveSortByLabel(obj[i].children); 
      sortAlgorithm(obj); //any sorting algorithm 
     } 
    } 
} 

fiddle에서 나는 다소 불투명하지만 쉽게 거품 알고리즘을 구현했습니다. 검사를 위해 결과를 콘솔에 기록합니다.

+0

감사합니다 - 이것이 내가 필요한 것입니다. –