//数组数据转layui能识别的树形数据(根ID【顶层pid】必须为"")
function ArrayToTreeData(arrayData) {
//返回结果
var result = [];
//临时map
var tmpMap = [];
//将所有数据存入map,SID为节点id、value为节点对象
for (var i=0, l=arrayData.length; i<l; i++) {
//获取对象(必须操作原对象)
var data = arrayData[i];
//数组节点指向原对象
tmpMap[data.SID] = data;
}
//再次循环数组
for (var i=0, l=arrayData.length; i<l; i++) {
//获取对象(必须操作原对象)
var data = arrayData[i];
if (isNotNullOrEmpty(tmpMap[data.R_SID]) && data.SID != data.R_SID) {//其他节点
if (!tmpMap[data.R_SID].children){//如果对象子节点属性不存在,需创建
tmpMap[data.R_SID].children = [];
}
tmpMap[data.R_SID].children.push(data);
} else {//根节点
result.push(data);
}
}
return result;
}
//是否不为空(true否,false是)
function isNotNullOrEmpty(obj){
return !isNullOrEmpty(obj);
}
//是否为空(true是,false否)
function isNullOrEmpty (obj){
if(null == obj || undefined == obj || obj.length == 0){
return true;
}else{
false;
}
}
js构建树形结构
最新推荐文章于 2021-02-10 15:19:33 发布