javascript中数组里对象怎么去重

 var arr1 = [{x:513.4261838440111,y:174},
                        {x:270.3404255319149,y:174},
                        {x:513.4261838440111,y:174},
                        {x:520.5167237931058,y:369.80798782499784},
                        {x:520.5167237931058,y:369.80798782499784},
                        {x:241.57929926401988,y:381.9650668601638},
                        {x:270.3404255319149,y:174},
                        {x:241.5792992640199,y:381.9650668601638}
                    ]

var kv = [];

$.map(arr1, function (obj) {
if (obj.x != kv[obj.x] && obj.y != kv[obj.y]) {
kv[obj.x] = obj.y;
}
});


如果使用jquery的话,可以使用$.map()去解决.

http://www.jb51.net/article/46154.htm

好吧,我写出来了。谢谢大家,虽然没用到你们

 for (var i = 0;i<arr1.length;i++) {
                for (var j =1;j<arr1.length-1;j++) {
                    if(arr1[i].x == arr1[j].x){
                        arr1.splice(j,1)
                    }
                }
            }
            console.log(arr1)

    var arr1 = [
{ x: 513.4261838440111, y: 174 },
{ x: 270.3404255319149, y: 174 },
{ x: 513.4261838440111, y: 174 },
{ x: 520.5167237931058, y: 369.80798782499784 },
{ x: 520.5167237931058, y: 369.80798782499784 },
{ x: 241.57929926401988, y: 381.9650668601638 },
{ x: 270.3404255319149, y: 174 },
{ x: 241.5792992640199, y: 381.9650668601638 }
    ]
    var kv = {}
    for (var i = 0; i < arr1.length;) {
        if (kv[arr1[i].x + ',' + arr1[i].y]) {
            arr1.splice(i, 1);
        }
        else {
            kv[arr1[i].x + ',' + arr1[i].y] = true;
            i++;
        }
    }
    console.log(arr1)

循环判断,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

http://es6.ruanyifeng.com/#docs/set-map

都写出来了,就提供个新知识给你把。

  var kv = {};
 var arr = arr1.filter(function(obj) {
    if (!kv[obj.x + ',' + obj.y]) {
        kv[obj.x + ',' + obj.y] = true;
        return obj;
    }
 })
 console.log(arr);