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

在线等,挺急的!JS 统计数组对象中多个属性值相同的个数求解答!

在线等,挺急的!JS 统计数组对象中多个属性值相同的个数求解答!

蝴蝶不菲 2019-07-26 23:35:42
varrelationCase=[{relationId:"1f72675b-2d63-4815-a918-c219d623fb83",relation_applicationCode:"S-00005001-0001",relation:"1",fraudStrtus:"NEW",esRule:[],broadcastUrl:"http://10.10.39.61/fac/api/anayzeCase/update",color:"#efef2ff2",tenantID:"novaB"},{relationId:"80b8269d-1a4f-444b-afa9-e5e5f128d6db",relation_applicationCode:"S-00005001-0001003",relation:"1",fraudStrtus:"NEW",esRule:[],broadcastUrl:"http://10.10.39.61/fac/api/anayzeCase/update",color:"#95ff95",tenantID:"novaB"},{relationId:"feafe8fd-71434b80a2a",relation_applicationCode:"S-1223340",relation:"3",fraudStrtus:"FRAUD",esRule:[],broadcastUrl:"http://10.10.39.61/fac/api/anayzeCase/update",color:"#95ff95",tenantID:"BankA"}];如果对象彼此的属性relation和fraudStrtus都相同,则统计有多个重复
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

本质上这是个数组元素分组的问题,请参考实现一下groupBy这个函数
可以参考这里的groupBy实现,如果你了解TypeScript,也可以查看TS源码(其实不了解也能看个七七八八,毕竟只是加了类型而已)
constmap=groupBy(arr,({relation,fraudStrtus})=>relation+fraudStrtus)
//map中即包含按照标识relation+fraudStrtus分离好的不同的二维数组
附:吾辈强烈建议楼主自己实现一个/一些通用的数组操作函数库,而不是仅仅用在这个例子上写死获取某些属性作为标识
                            
查看完整回答
反对 回复 2019-07-26
?
湖上湖

TA贡献2003条经验 获得超2个赞

functiongroup(arr){
varobj={};
if(Array.isArray(arr)){
for(vari=0;ivarrelation=arr[i].relation;
if(relationinobj)obj[relation].push(arr[i]);
elseobj[relation]=[arr[i]];
}
}
returnobj;
}
functionmax(obj){
varret=0;
if(obj&&typeofobj==="object"){
for(varkeyinobj){
varlength=obj[key].length;
if(length>ret)ret=length;
}
}
returnret;
}
console.log(max(group(relationCase)));
                            
查看完整回答
反对 回复 2019-07-26
  • 2 回答
  • 0 关注
  • 413 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信