我是javascript新手,我尝试过使用distinct,但它不是我想要的
示例数组:
let arr = [ {key:"1",value:"dog"}, {key:"1",value:"dog"}, {key:"2",value:"cat"}, {key:"3",value:"bird"}, {key:"3",value:"bird"}, ]
我尝试的代码上只是删除重复的
[ {key:"1",value:"dog"}, {key:"2",value:"cat"}, {key:"3",value:"bird"}, ]
我怎样才能只得到
[ {key:"2",value:"cat"} ]
我的意思是只有一个没有重复的人,并且删除那些完全相同的数组吗?
如果可以使用下划线或lodash之类的Javascript库,建议您查看它们库中的_.xorBy函数。从lodash:
_.xorBy([arrays], [iteratee=_.identity])
基本上,您传入的数组是此处的对象文字,然后传入您希望对原始数据数组中所有出现的重复副本使用的属性,如下所示:
var data = [ {key:"1",value:"dog"} , {key:"1",value:"dog"} , {key:"2",value:"cat"} , {key:"3",value:"bird"} , {key:"3",value:"bird"} ]; var non_duplidated_data = _.xorBy(data, 'key');
来源-https: //lodash.com/docs/4.17.14#xorBy