/**
* 树级列表排序
* @param origList 列表
* @param idName id字段名
* @param pidName 上级id字段名
* @returns {any[]}
*/
function getOrderList(origList,idName,pidName) {
//遍历获取MAP(pid->Object)
var pidMap = new Map();
for (var i =0 ; i < origList.length; i++){
var item = origList[i];
if(item[pidName] != null && item[pidName] != ""){
if(pidMap.get(item[pidName]) != null){
pidMap.get(item[pidName]).push(item);
} else {
pidMap.set(item[pidName],[item]);
}
}
}
//排序
var rstList = new Array();
for (var i =0 ; i < origList.length; i++){
var item = origList[i];
if(!item[pidName]){
rstList.push(item);
pushChildList(rstList, item,pidMap,idName,pidName);
}
}
return rstList;
}
//递归调用获取子节点的子节点
function pushChildList(rstList, item,pidMap,idName,pidName) {
if(pidMap.get(item[idName]) != null && pidMap.get(item[idName]).length > 0){
for (var i =0;i<pidMap.get(item[idName]).length; i++) {
rstList.push(pidMap.get(item[idName])[i]);
pushChildList(rstList, pidMap.get(item[idName])[i],pidMap,idName,pidName);
}
}
}
js 树级排序
最新推荐文章于 2022-02-25 18:07:15 发布