@ff0xff

Как рекурсивно сформировать список ul?

Надо из n мерного массива сформировать ul список, я долго ковырял вот этот код но процесс зашел в тупик - может кто свежим взглядом посмотреть подсказать как сделать?

Собственно такая вот структура:
[
  {
    "id": 1,
    "parent_id": null,
    "children": [
      {
        "id": 2,
        "parent_id": 1,
        "children": []
      },
      {
        "id": 3,
        "parent_id": 1,
        "children": [
          {
            "id": 4,
            "parent_id": 3,
            "children": []
          }
        ]
      }
    ]
  }
]

Хочу с генерировать на выходе вот такую html'ку:
<ul id="organisation">
        <li>1
            <ul>
                <li>2</li>
                <li>3
                         <ul>
                              <li>4</li>
                    </ul>
                  </li>
            </ul>
        </li>
    </ul>
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
twobomb
@twobomb
var arr1 = [{
  "id": 1,
  "parent_id": null,
  "children": [{
      "id": 2,
      "parent_id": 1,
      "children": []
    },
    {
      "id": 3,
      "parent_id": 1,
      "children": [{
        "id": 4,
        "parent_id": 3,
        "children": []
      }]
    }
  ]
}];

recBuild(document.querySelector("#organisation"),arr1);

function recBuild(parentUl,arr){
  arr.forEach((el)=>{
  	var li = document.createElement("li");
    li.innerHTML = el.id;
    if(el.children.length > 0 ){    
			var ul = document.createElement("ul");
    	recBuild(ul,el.children);
      li.append(ul);
     }
		parentUl.appendChild(li);    
  });
}

<ul id="organisation"></ul>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы