minhnt-dev: add build node with arr

This commit is contained in:
MoreStrive
2024-06-17 09:55:33 +07:00
parent ecf4512cd3
commit c2b9208746
4 changed files with 27 additions and 6 deletions
+21
View File
@@ -0,0 +1,21 @@
import cloneDeep from 'lodash/cloneDeep';
export function buildTree(data: any) {
const _array = cloneDeep(JSON.parse(data))
if (_array.length > 0) {
let map = new Map();
_array.forEach((item : any) => map.set(item.id, item));
_array.forEach((item : any) => {
if (item.parentId !== undefined) {
let parent = map.get(item.parentId);
if (parent) {
parent.childs.push(item);
}
}
});
return _array.filter(item => !item.parentId);
} else {
return []
}
}