Просто нашел это, и я подумал, что это полезно
_.map(_.indexBy(records, '_id'), function(obj){return obj})
Снова используя underscore , поэтому, если у вас есть такой объект
var records = [{_id:1,name:'one', _id:2,name:'two', _id:1,name:'one'}]
он даст вам уникальные объекты.
Что здесь происходит, так это то, что indexBy
возвращает такую же карту
{ 1:{_id:1,name:'one'}, 2:{_id:2,name:'two'} }
, и только потому, что это карта, все ключи уникальны .
Затем я просто сопоставляю этот список с массивом.
Если вам нужны только отдельные значения
_.map(_.indexBy(records, '_id'), function(obj,key){return key})
Имейте в виду, что key
возвращается как строка, поэтому, если вам нужны целые числа, вы должны сделать
_.map(_.indexBy(records, '_id'), function(obj,key){return parseInt(key)})