nsn-comp
Version:
NSN核心组件
34 lines (28 loc) • 709 B
JavaScript
import { cloneDeep } from 'lodash';
/**
* 将平面数据转换为树结构
*/
var conventToTree = function conventToTree() {
var records = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
if (records.length === 0) {
return [];
}
var recordsMap = new Map();
records.forEach(function (ele) {
return recordsMap.set(ele.id, cloneDeep(ele));
});
var dataList = [];
recordsMap.forEach(function (ele) {
var pRes = recordsMap.get(ele['parentId']);
if (pRes) {
if (!pRes.children) {
pRes.children = [];
}
pRes.children.push(ele);
} else {
dataList.push(ele);
}
});
return dataList;
};
export { conventToTree };