简体   繁体   English

试图获得对象的唯一列表

[英]Trying to get a unique list of objects

I have a collection of objects 我有一些物件

var array = 
[
    {"category":"A", "categoryname":"somename", key: 1, description: "something"}, 
    {"category":"A", "categoryname":"somename", key: 1, description: "something"}, 
    {"category":"B", "categoryname": "somename", key: 1, description: "something"}
    {"category":"B", "categoryname": "somename", key: 3, description: "something"}
    {"category":"C", "categoryname": "somename", key: 2, description: "something"}
    {"category":"C", "categoryname": "somename", key: 2, description: "something"}
]

that have 4 values (category, categoryname, key, description) and I need to loop through it and get a unique list of objects based on the category. 有4个值(类别,类别名称,键,描述),我需要遍历它并根据类别获取对象的唯一列表。 But I want to return the unique list with 2 preoperties and not just one. 但是我想返回具有2个操作性的唯一列表,而不仅仅是一个。 If I use 如果我用

_.uniq(_.pluck(array,"category"))

this gives me what I want except I need the categoryname as well as the category. 这给了我我想要的东西,除了我需要类别名称和类别。 Is this possible? 这可能吗?

There are a couple of questions on the same use case already. 在同一用例上已经有几个问题。

Plucking Multiple Properties 采多属性

Removing duplicate objects with Underscore for Javascript 使用Underscore for Java删除重复的对象

You can use $.unique() , Array.prototype.map() , JSON.stringify() , JSON.parse() 您可以使用$.unique()Array.prototype.map()JSON.stringify()JSON.parse()

 var array = [{ "category": "A", "categoryname": "somename", key: 1, description: "something" }, { "category": "A", "categoryname": "somename", key: 1, description: "something" }, { "category": "B", "categoryname": "somename", key: 1, description: "something" }, { "category": "B", "categoryname": "somename", key: 3, description: "something" }, { "category": "C", "categoryname": "somename", key: 2, description: "something" }, { "category": "C", "categoryname": "somename", key: 2, description: "something" }]; var res = $.unique(array.map(function(el) { return JSON.stringify([el.category, el.categoryname]) })).map(JSON.parse); console.log(res); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM