js == 数据json转树状结构

之前 用easyui的treegrid的时候 需要树状结构数据 那时候去看了一下别人的代码 。发现不能灵活转换任意想用的前端框架 。所以我就自己修改了一下 。
灵活适用 代码如下:

/**
 * lSJ
 * @param list    集合
 * @param idStr   主键ID字符串
 * @param pidStr  父ID字符串
 * @param chindrenStr  显示节点名称
 * @param key     需要新增的key名
 * @param value   需要获取的value名
 * @returns
 */
function transData(list, idStr, pidStr, chindrenStr , key , value ){    
	var result = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, text = key , name = value, i = 0, j = 0, len = list.length ;
	for(; i < len; i++){    
		hash[list[i][id]] = list[i]; 
		list[i][text] = list[i][name];
		delete list[i][name]; 
		delete list[i].state;
	}    
	for(; j < len; j++){    
		var aVal = list[j], hashVP = hash[aVal[pid]];    
		if(hashVP){    
			!hashVP[children] && (hashVP[children] = []);    
			hashVP[children].push(aVal);    
		}else{    
			result.push(aVal);    
		}    
	}    
	return result;    
} 

easyui 的treegrid 可能只会用到前面四个参数
但是 像 bootstrap 中的treeview想要替换text中的文本 就要用到最后两个参数了
感谢看官 大神勿喷

你可能感兴趣的:(json树状数据)