我就直接上代码了都是实际项目里面用到的
1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客)
var compressedArr=afcommon.treeDataToCompressed(json);
/*******************************JS封装好的方法*********************************************/
var afcommon=(function ($) {
var prefix="|—";
let compressedData=[];// 用于存储递归结果(扁平数据)
return {
/**
* 把扁平数据转成树型结构数据(可以实现无限层级树形数据结构,只适用于单个表的数据)
* @param source
* @param id
* @param parentId
* @param children
*/
treeDataformat : function(source, id, parentId, children){
let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆
return cloneData.filter(father=>{ // 循环所有项,并添加children属性
let branchArr = cloneData.filter(child => father[id] == child[parentId]); // 返回每一项的子级数组