删除重复但不保存副本在数组中

时间:2016-02-02 06:56:41

标签: arrays filter underscore.js

我可以从下面给出的JSON中删除重复项:

var testJSON=[
    {
        "target": "300.0",
        "valueObj": {
            "id": 2538
        }
    },
    {
        "target": "400.0",
        "valueObj": {
            "id": 2539
        }
    },
    {
        "target": "300.0",
        "valueObj": {
            "id": 2538
        }
    },
    {
        "target": "400.0",
        "valueObj": {
            "id": 2539
        }
    },
    {
        "target": "12.23",
        "valueObj": {
            "id": 2540
        }
    }
]

使用下划线_uniq属性:

  

_.uniq(testJSON,'valueObj.id');

仅返回唯一属性,即。,

    {
        "target": "300.0",
        "valueObj": {
            "id": 2538
        }
    }

但不显示其他对象。 结果,我期待..

[
        {
            "target": "300.0",
            "valueObj": {
                "id": 2538
            }
        },
        {
            "target": "400.0",
            "valueObj": {
                "id": 2539
            }
        },          

        {
            "target": "12.23",
            "valueObj": {
                "id": 2540
            }
        }
    ]

1 个答案:

答案 0 :(得分:0)

解决这个问题..

   var testJSON = _.uniq(testJSON, function (item: any, key, a) {
                     return item.valueObj.id;
                    });