首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象表- uniq

对象表- uniq
EN

Stack Overflow用户
提问于 2016-03-10 14:52:00
回答 2查看 35关注 0票数 0

我有一个下表:

代码语言:javascript
复制
[ 
   { somename1: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       } 
   },
   { somename2: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       }
    },
    { somename1: 
       { 
         field1: 'field1',
         field2: 'field2',
         field3: [Object]
       } 
   } 
]

我想得到的是:

代码语言:javascript
复制
[
   { somename1: 
     { 
       field1: 'field1',
       field2: 'field2',
       field3: [Object]
     } 
   },
   { somename2: 
     { 
       field1: 'field1',
       field2: 'field2',
       field3: [Object]
     }
   }
]

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

谢谢你帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-10 16:22:09

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

代码语言:javascript
复制
var result = _.uniq(data, function(item){
    return _.first( _.keys(item));
})
票数 0
EN

Stack Overflow用户

发布于 2016-03-10 15:09:29

没有下划线,您可以很容易地做到这一点:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35919830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档