例如,我有这个数组:
0: {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: ""}
1: {myfield: "1f974a20-aa59-11e8-9666-ab3419ed3bc9", order: 0, value: ""}
2: {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: "One"}
3: {myfield: "af7401a0-aa6e-11e8-9653-ab3419ed3bc9", order: 1, value: "Two"}
我想遍历它并弹出/删除旧版本的重复数组,在此示例中,我想保留对象2 并弹出/删除对象0 因为它们都具有完全相同的myfield
是否可以使用lodash做到这一点?
答案 0 :(得分:1)
您可以使用_.uniqBy()
let arr = [ {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: ""}, {myfield: "1f974a20-aa59-11e8-9666-ab3419ed3bc9", order: 0, value: ""}, {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: "One"}, {myfield: "af7401a0-aa6e-11e8-9653-ab3419ed3bc9", order: 1, value: "Two"}];
let result = _.uniqBy(arr, 'myfield');
答案 1 :(得分:0)
尝试使用isEqual
和uniqWith
方法对对象数组进行深度均衡。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.uniqWith(objects, _.isEqual);