Table of objects - uniq

Table of objects - uniq

本文关键字:uniq objects of Table      更新时间:2023-09-26

>我有一个下表:

[ 
   { somename1: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       } 
   },
   { somename2: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       }
    },
    { somename1: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       } 
   } 
]

我想得到的是:

[
   { somename1: 
     { 
       field1: 'field1',
       field2: 'field2',
       field3: [Object]
     } 
   },
   { somename2: 
     { 
       field1: 'field1',
       field2: 'field2',
       field3: [Object]
     }
   }
]

我尝试过使用_.uniq(table)和下划线,但我失败了。你知道我该怎么办吗?

感谢您的帮助!

下面是使用下划线的解决方案:

var result = _.uniq(data, function(item){
    return _.first( _.keys(item));
})

您可以在没有下划线的情况下轻松完成此操作:

var o = [ { somename1: 
     { field1: 'field1',
       field2: 'field2',
       field3: [Object]
     } 
   },
   { somename2: 
     { field1: 'field1',
       field2: 'field2',
       field3: [Object]
     }
   },
   { somename1: 
     { field1: 'field1',
       field2: 'field2',
       field3: [Object]
     } 
} ];
var tmp = [], res = [];
o.forEach(function(a, i) {
    var key = Object.keys(a)[0];
    if (tmp.indexOf(key) < 0) {
        tmp.push(key);
        res.push(o[i]);
    }
});
console.log(res);