从数组中删除重复出现

Remove repeated occurance from an array

我需要根据特定条件检查从数组中删除重复的对象 如果此数组中具有相同 "connector"、"address"、"type" 值的任何对象,我需要删除该对象。

array =  [{
        connector : 'smtp',
        name : 'john',
        address : 'john@gmail.com',
        type : 'cc'
    }, {
        connector : 'smtp',
        name : 'john',
        address : 'john@gmail.com',
        type : 'cc'
    }, {
        connector : 'gtp',
        name : 'mark',
        address : 'mark@gmail.com',
        type : 'cc'
    }, {
        connector : 'ftp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'bcc'
    },
    {
        connector : 'smtp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'cc'
    }
 ]

我需要如下方式的输出

output = [{
        connector : 'smtp',
        name : 'john',
        address : 'john@gmail.com',
        type : 'cc'
    },{
        connector : 'gtp',
        name : 'mark',
        address : 'mark@gmail.com',
        type : 'cc'
    }, {
        connector : 'ftp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'bcc'
    },
    {
        connector : 'smtp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'cc'
    }
 ]

抱歉,我尝试了一些重复的 foreach 循环,但最终没有结果。你能帮我找到任何有效的方法来做同样的事情吗?

可以借助下划线uniq来完成。

array =  [{
        connector : 'smtp',
        name : 'john',
        address : 'john@gmail.com',
        type : 'cc'
    }, {
        connector : 'smtp',
        name : 'john',
        address : 'john@gmail.com',
        type : 'cc'
    }, {
        connector : 'gtp',
        name : 'mark',
        address : 'mark@gmail.com',
        type : 'cc'
    }, {
        connector : 'ftp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'bcc'
    },
    {
        connector : 'smtp',
        name : 'wiki',
        address : 'wiki@gmail.com',
        type : 'cc'
    }
 ]
 //generating a string of keys you wish to compare which forms the criteria for uniqueness
 add = _.uniq(array, function(a){ return a.connector + "-" + a.address + "-" + a.type;})

 console.log(add)

工作代码here