给的数据格式如下:varstudents=[{groupid:'123',groupname:'aaa',classnick:'小红'},{groupid:'45',groupname:'bbb',classnick:'小黑'},{groupid:'',groupname:'',classnick:'张三'},{groupid:'233',groupname:'ccc',classnick:'李四'},{groupid:'45',groupname:'bbb',classnick:'王五'}];要转变成如下的格式:[{g_id:'123',g_name:'aaa',g_count:1},{g_id:'45',g_name:'bbb',g_count:2},{g_id:'233',g_name:'ccc',g_count:1}]怎么实现呢?憋了好长时间了...应该循环几次?
2 回答
Qyouu
TA贡献1786条经验 获得超11个赞
functionfilter(students){varobj={};varresult=[];for(vari=0,len=students.length;ivaritem=students[i];vargroupid=item.groupid;vargroupname=item.groupname;varid=groupid+groupname;if(!id)continue;varindex=obj[id];varcurrent;if(index){result[index].g_count++;}else{result.push({g_id:groupid,g_name:groupname,g_count:1});obj[id]=result.length-1;}}returnresult;}filter(students);
噜噜哒
TA贡献1784条经验 获得超7个赞
vararr=(function(){varobj={},num=0;returnstudents.map(x=>{returnobj[x.groupid]?(obj[x.groupid]++,false):(x.groupid?(obj[x.groupid]=1,{g_id:x.groupid,g_name:x.groupname}):false)}).filter(x=>(x.g_count=obj[x.g_id],x))})()
添加回答
举报
0/150
提交
取消
