87,902
社区成员
发帖
与我相关
我的任务
分享
[
{ id:1, name:"101", pt:{ id:111 } },
{ id:2, name:"102", pt:{ } },
{ id:3, name:"103", pt:{ id:111 } }
]
转成
[
{
pt:{ id:111 },
pd:[ { id:1, name:"101"}, { id:3, name:"103"} ]
},
{
pt:{},
pd:[ { id:2, name:"102"} ]
}
]
var arr = [
{ id:1, name:"101", pt:{ id:111 } },
{ id:2, name:"102", pt:{ } },
{ id:3, name:"103", pt:{ id:111 } }
];
var cache = {};
var ptid ,newArr = [];
var nopt = {
pt : {},
pd : []
}
var _temp ;
for(var i=0;i<arr.length;i++){
_temp = {};
_temp.id = arr[i].id;
_temp.name = arr[i].name;
ptid = arr[i].pt.id;
if(ptid === undefined){
nopt.pd.push(_temp);
}else{
if(!cache[ptid]){
cache[ptid] = {
pt : {
id : arr[i].id
},
pd : []
}
}
cache[ptid].pd.push(_temp);
}
}
for(var p in cache){
newArr.push(cache[p]);
}
newArr.push(nopt);
console.log(newArr)