如何用Jq 对数组重复对象去重?

如何用Jq 对数组重复对象去重?
var arr=[{id:1,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:4,X: 3, Y: 4},{id:5,X: 3, Y: 4}];

阅读 6.8k
4 个回答
var arr=[{id:1,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:4,X: 3, Y: 4},{id:5,X: 3, Y: 4}];
    var hash = {};
    var result = [];
    for(var i = 0, len = arr.length; i < len; i++){
        if(!hash[arr[i].id+arr[i].X+arr[i].Y]){
            result.push(arr[i]);
            hash[arr[i].id+arr[i].X+arr[i].Y] = true;
        }
    }
    console.log(result);

数组对象貌似不行的。 因为内存地址不一样。

新手上路,请多包涵
 var arr=[{id:1,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:2,X: 3, Y: 4},{id:4,X: 3, Y: 4},{id:5,X: 3, Y: 4}];
var unique = {};
    arr.forEach(function(a){ unique[ JSON.stringify(a) ] = 1 });
    arr= Object.keys(unique).map(function(u){return JSON.parse(u) });
    console.log(arr)
推荐问题
宣传栏