比较underscorejs uniq iteratee中的多个属性

Compare more than one properties in underscorejs uniq iteratee

我正在使用 underscorejs uniq 方法。

_.uniq(
    [{ name: 'a', family: 't' }, { name: 'b', family: 'n' }], 
    false, 
    function (item, key, a) { return item.name; }
);

Iteratee 函数只是 return 一个 属性。但我想比较姓名和家庭以创建唯一列表。怎么做到的?

试试这个代码:

_.uniq(
    [
        {name: 'a', family: 't'}, 
        {name: 'b', family: 'n'}, 
        {name: 'a', family: 'd'}, 
        {name: 'a', family: 't'}
    ], 
    false, 
    function (item, key, a) { return 'n=' + item.name + ';f=' + item.family; }
);

它将生成一个只有三个对象的数组:

[{name: 'a', family: 't'}, {name: 'b', family: 'n'}, {name: 'a', family: 'd'}]