为了账号安全,请及时绑定邮箱和手机立即绑定

js数组对象去重问题

js数组对象去重问题

HUH函数 2019-05-25 14:41:09
给的数据格式如下: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);
                            
查看完整回答
反对 回复 2019-05-25
?
噜噜哒

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))
})()
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号