猿问

数组中对象去重的方法

如下一个数组,怎么去除其中的重复对象,求大神给个方法,谢谢啊
arr=[
{orgId:"100",orgName:"信息组"},
{orgId:"100",orgName:"信息组"},
{orgId:"100",orgName:"信息组"},
{orgId:"81",orgName:"安全组"},
{orgId:"11",orgName:"秘书组"},
{orgId:"81",orgName:"安全组"}
]
收到一只叮咚
浏览 241回答 2
2回答

侃侃尔雅

vararr=[{orgId:'100',orgName:'信息组'},{orgId:'100',orgName:'信息组'},{orgId:'100',orgName:'信息组'},{orgId:'81',orgName:'安全组'},{orgId:'11',orgName:'秘书组'},{orgId:'81',orgName:'安全组'},];Object.values(arr.reduce((obj,next)=>{varkey=JSON.stringify(next);return(obj[key]=next),obj;},{}),);我来个最简单的,but有个缺点,arr里面的对象必须能被JSON.stringify处理

跃然一笑

stringify那位兄弟的去重方法是可以的(之前说稳健是不对的,还不够稳健)。不过代码也是要考虑实际业务场景的,这样的数组数据是怎么来的呢?orgId是不是已经就是有着唯一Id的作用的,是不是orgId一致的对象,就代表着对象是一致的。如果是的话,那就没必要stringify了,直接拿orgId当key去重就好了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答