1、树形数据转数组
const recursion = (arr, num) => { arr.forEach((ele) => { // 判断有子元素,并且子元素的长度大于0就再次调用本身 if (ele.children && ele.children.length > 0) { // var node_root = ele.children.filter((item) => item.basicData == 3); for (let k = 0; k < ele.children.length; k++) { if (ele.children[k].basicData == 3) { data.rootAllNode.push({ nodeId: ele.children[k].id, context: ele.children[k].title, parentId: ele.children[k].parentId, basicData: ele.children[k].basicData, checkArr: "1", checked: "1", disabled: true, }); } else if (ele.children[k].basicData == 2) { data.parentAllNode.push({ nodeId: ele.children[k].id, context: ele.children[k].title, parentId: 1, basicData: ele.children[k].basicData, checkArr: "1", checked: "1", disabled: true, }); } } recursion(ele.children, num); } });};
2、数组转树形数据
const toTree = (data) => { let result = []; if (!Array.isArray(data)) { return result; } data.forEach((item) => { delete item.children; }); let map = {}; data.forEach((item) => { map[item.nodeId] = item; }); data.forEach((item) => { let parent = map[item.parentId]; if (parent) { (parent.children || (parent.children = [])).push(item); } else { result.push(item); } }); return result;};