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分离好的不同的二维数组附:吾辈强烈建议楼主自己实现一个/一些通用的数组操作函数库,而不是仅仅用在这个例子上写死获取某些属性作为标识
湖上湖
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)));
添加回答
举报
0/150
提交
取消