32 lines
662 B
JavaScript
32 lines
662 B
JavaScript
function resetData(params) {
|
|
let posts = [];
|
|
params.forEach((item) => {
|
|
let obj = new Object();
|
|
obj = {
|
|
...item
|
|
};
|
|
obj.value = item.id;
|
|
obj.text = item.name;
|
|
obj.parentId = item.parent;
|
|
posts.push(obj);
|
|
});
|
|
let obj = posts.reduce((res, v) => ((res[v.id] = v), res), {}); //Object
|
|
let arr = [];
|
|
for (let item of posts) {
|
|
if (item.parentId == null) {
|
|
arr.push(item);
|
|
continue;
|
|
}
|
|
let parent = obj[item.parentId];
|
|
parent.children = parent.children ? parent.children : [];
|
|
parent.children.push(item);
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
|
|
export default resetData;
|
|
|
|
|
|
|
|
|