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中的文本 就要用到最後兩個參數了
感謝看官 大神勿噴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章