// 待处理的数据
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) } }