Мне нужно определить, в каких элементах и в каком кол-ве есть дочерние подэлементы - проще говоря, составить treeview из json файла.
Я попытался решить все через рекурсию, но сейчас нахожусь в ступоре. Функция просто возвращает undefined.
Вот рекурсия:
function f1(p) {
for (i = 0; i < p.length; i++) {
var z = data.filter(obj => obj.parentId === p[i].id);
if(z){
f1(z);
}
else continue;
}
}
Наметки кода:
$(document).ready(function() {
var tree = document.getElementsByClassName("tree");
$.getJSON('some_json_ssilka', function(data) {
function f1(p) {
for (i = 0; i < p.length; i++) {
var z = data.filter(obj => obj.parentId === p[i].id);
if(z){
f1(z);
}
else continue;
}
}
var level = data.filter(obj => obj.parentId === -1);
console.log(f1(level));
});
});
Исходные данные:
[
{
"id":2,
"title":"Folder 1",
"parentId":-1
},
{
"id":3,
"title":"Test",
"parentId":1
},
{
"id":-1,
"title":"Folder 2",
"parentId":null
},
{
"id":1,
"title":"Folder 2",
"parentId":-1
},
{
"id":4,
"title":"Wrike",
"parentId":2
},
{
"id":5,
"title":"Tester",
"parentId":1
}
]