2015-04-05 52 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 2015-04-05 14:02:25

+1

你可以用高阶函数而不是显式循环来表达它,但循环会发生。 – Touffy 2015-04-05 14:04:56

+1

你用underscore.js标记了问题,所以你真的看着他们的文档或谷歌你的答案? – 2015-04-05 14:07:29

回答

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>