1. 程式人生 > >將Json陣列轉換為樹形結構,再生成選單列表(待續)

將Json陣列轉換為樹形結構,再生成選單列表(待續)

<script type="text/javascript">
	/*將Json陣列轉換為樹形結構*/
	$(function(){
	var list = ${functionList};
	var data = transDate(list,"moduleid","parentid");
	
	console.log(data);
	
	function transDate(list,moduleid,parentid){
	    var result = [],temp = {};
	    for(i = 0; i < list.length; i++){
	        temp[list[i][moduleid]]=list[i];//將nodes陣列轉成物件型別
	    }
	    for(j=0; j<list.length; j++){
	        tempVp = temp[list[j][parentid]]; //獲取每一個子物件的父物件
	        if(tempVp){//判斷父物件是否存在,如果不存在直接將物件放到第一層
	            if(!tempVp["nodes"]) tempVp["nodes"] = [];//如果父元素的nodes物件不存在,則建立陣列
	            tempVp["nodes"].push(list[j]);//將本物件壓入父物件的nodes陣列
	        }else{
	            result.push(list[j]);//將不存在父物件的物件直接放入一級目錄
	        }
	    }
	    return result;
	}
	
	 })
	</script>