2015-04-05 3 views
-3

У меня есть массив объекты, какКак найти уникальные объекты из массива

var array = 

[ 
    {"name":"Joe", "age":17}, 
    {"name":"Carl", "age": 35}, 
    {"name":"Joe", "age":17}, 
    {"name":"Carl", "age":35}, 
    {"name":"Mark", "age":21}, 
] 

Что лучший способ для извлечения уникальных объектов из этого массива, не делая лупинги, в этом случае выходе должен быть

[ 
    {"name":"Joe", "age":17}, 
    {"name":"Carl", "age": 35}, 
    {"name":"Mark", "age":21} 
] 
+2

"не делая лупинги". Нет никакого способа, – undefined

+1

вы могли бы выразить его в терминах функций более высокого порядка вместо явного цикла, но цикл все равно будет происходить. – Touffy

+1

Вы отметили вопрос с помощью underscore.js, так вы действительно просмотрели их документацию или Google для своего ответа? –

ответ

2

Попробуйте библиотеку lodash и метод uniq: это может работать и с подчеркиванием.

https://lodash.com/docs#uniq

_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); 
// → [{ 'x': 1 }, { 'x': 2 }] 
1

Используя проект с открытым исходным кодом jinqJs его очень легко.

var array = 
 
[ 
 
    {"name":"Joe", "age":17}, 
 
    {"name":"Carl", "age": 35}, 
 
    {"name":"Joe", "age":17}, 
 
    {"name":"Carl", "age":35}, 
 
    {"name":"Mark", "age":21}, 
 
]; 
 
    
 

 
    var result = jinqJs().from(array).distinct('name', 'age').select(); 
 
    document.body.innerHTML += '<pre>' + JSON.stringify(result, null, 2) + '</pre><br><br>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>

Смежные вопросы