2016-10-10 2 views
0

У меня есть коллекция объектовПопытка получить уникальный список объектов

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"} 
] 

, которые имеют 4 значения (категория, CategoryName, ключ, описание), и мне нужно перебрать его и получить уникальный список объектов на основе категории. Но я хочу вернуть уникальный список с 2 preoperties, а не только один. Если я использую

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

Это дает мне то, что я хочу, за исключением того, что мне нужно название категории, а также категорию Это возможно?

+0

Что ожидаемый результат? – guest271314

+0

[["A", "somename"], ["B", "somename"], ["C", "somename"]] – user1186050

ответ

-1

Вы можете использовать $.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>