自己做treegrid的时候遇到了这个问题,所以就自己遍历一下了噻。
function convert(orgin) { var result = arguments[1] ? arguments[1] : []; var level = arguments[2] ? arguments[2] : 0; var parentid = arguments[3] ? arguments[3] : 0; for(var x in orgin) { if(orgin[x]["parentid"]==parentid&&orgin[x]["skip_012ea834e2aa011ef16f7d846889c026"]!=1) { orgin[x]["level"]=level; result.push(JSON.parse(JSON.stringify(orgin[x]))); //对象深拷贝 orgin[x]["skip_012ea834e2aa011ef16f7d846889c026"]=1;//已经知晓层级的节点不再遍历 if(orgin[x]["isleaf"]!=1) { convert(orgin,result,level+1,orgin[x]["id"]); } } } return result; }
二、测试代码
var orgin = [ { "id": 1, "name": "生产管理1", "parentid": 0, "isleaf": 0 }, { "id": 2, "name": "生产管理2", "parentid": 1, "isleaf": 0 }, { "id": 3, "name": "生产管理3", "parentid": 2, "isleaf": 1 }, { "id": 4, "name": "生产管理4", "parentid": 0, "isleaf": 1 }, { "id": 5, "name": "生产管理5", "parentid": 0, "isleaf": 0 }, { "id": 6, "name": "生产管理6", "parentid": 5, "isleaf": 1 } ]; console.log(convert(orgin))
结果如下: