I need to create function which will be able to convert flat object to recursive object. Here is my example: I have flat array:
var flatArray = [
{
you can use bellow code in Angular.
flatToHierarchy(flat: any[], parent: any = null, Key: string = 'id', parentKey: string = 'parentId') {
var leafs: any = [];
if (!parent) {
leafs = flat.filter((x: { [x: string]: any; }) => x[parentKey] === null);
} else {
leafs = flat.filter((x: { [x: string]: any; }) => x[parentKey] === parent[Key]);
}
if (!leafs || leafs.length == 0) {
return;
} else {
leafs.forEach((item: { children: any[]; }) => {
item.children = [];
item.children = this.flatToHierarchy(flat, item);
});
}
return leafs;
}
use same like this
this.flatToHierarchy(flatItems);