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;