Remove duplicates in an object array Javascript

前端 未结 8 1083
误落风尘
误落风尘 2020-12-01 16:03

I have an array of objects

list = [{x:1,y:2}, {x:3,y:4}, {x:5,y:6}, {x:1,y:2}]

And I\'m looking for an efficient way (if possible O(

8条回答
  •  自闭症患者
    2020-12-01 16:38

    Filter the array after checking if already in a temorary object in O(n).

    var list = [{ x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 }, { x: 1, y: 2 }],
        filtered = function (array) {
            var o = {};
            return array.filter(function (a) {
                var k = a.x + '|' + a.y;
                if (!o[k]) {
                    o[k] = true;
                    return true;
                }
            });
        }(list);
    
    document.write('
    ' + JSON.stringify(filtered, 0, 4) + '
    ');

提交回复
热议问题