var data = {};
data["children"]=[];
var status_list =
[
{service: "svr3"},
{service: "svr3"},
{service: "svr2"},
{service: "svr4"},
{service: "udp_svr"},
];
var deps = [
{ parent: "", child: "udp_svr"},
{parent: "udp_svr", child: "svr2"},
{ parent: "svr2", child: "svr4"},
{ parent: "svr2", child: "svr3"},
];
function parseData(deps, status_list) {
deps.forEach((item) => {
let result = status_list.find((listItem) => {
return item.child == listItem.service
});
if (result) {
Object.assign(item, result)
}
});
data.children.push(deps.find((listItem) => {
return listItem.parent == ''
}));
buildTree(this.data.children);
return deps;
}
function buildTree(children) {
if (!children) {
return;
}
children.forEach(item => {
deps.forEach(depsItem => {
if (depsItem.parent == item.service) {
if (!item.children) {
item.children = []
}
let find = item.children.find((finditem) => {
return depsItem.child == finditem.service
});
if (!find) {
item.children.push(
depsItem
)
}
}
});
buildTree(item.children)
})
}
console.log(parseData(deps, status_list)[0])
var oldDocuments = [
{ parent_id: -1,id:"udp_svr"},
{parent_id: "udp_svr",id:"svr2"},
{ parent_id: "svr2",id:"svr4"},
{ parent_id: "svr2",id:"svr3"},
];
function parseData(oldDocuments) {
let data = {
children:[]
};
data.children.push(oldDocuments.find((item) => {
return item.parent_id == -1
}));
buildTree(data.children,oldDocuments);
return data.children
}
function buildTree(children,oldDocuments) {
if (!children) {
return;
}
children.forEach(item => {
oldDocuments.forEach(oldDocumentItem => {
if (oldDocumentItem.parent_id == item.id) {
if (!item.children) {
item.children = []
}
let find = item.children.find((finditem) => {
return oldDocumentItem.id == finditem.id
});
if (!find) {
item.children.push(
oldDocumentItem
)
}
}
});
buildTree(item.children,oldDocuments)
})
}
console.log(parseData(oldDocuments))