// 待處理的數據
var map = [{ id: 3, name: 3, parentId:1 },{ id: 1, name: 1 },{ id: 2, name: 2, parentId:1 }] // 將每一個對象存在obj id => item var obj = {} for(var i = 0; i< map.length; i++){ let item = map[i] if(!obj[item.id]){ obj[item.id] = item item.children = [] } } // arr 處理即將儲存的數據 var arr = [] for(var i = 0; i< map.length; i++){ let item = map[i] if(item.parentId){
// 若是父元素存在,就把當前對象添加到父元素的children下面 obj[item.parentId].children.push(item) }else{ // 若是是頂級元素,直接添加到數組裏 arr.push(item) } }