我有一个如下的对象:
result = {
1:{name:'john', age: 20, sex:'M'},
2:{name:'smith', age: 25, sex:'M'},
3:{name:'john', age: 20, sex:'M'},
4:{name:'anna', age: 22, sex:'F'}
}
我需要检查表中是否已存在基于名称和年龄的每个对象,如果存在重复,则返回true。
我该怎么做?
三江源。
答案 0 :(得分:0)
这样做的一种方法是
result
对象map
,这样我们就可以获得一系列值,即[{name:'john',年龄:20,性别:'M'},{名称:'smith',年龄:25 ,性别:'M'},{姓名:'john',年龄:20,性别:'M'},{姓名:'john',年龄:22,性别:'M'},{姓名:'anna' ,年龄:22,性别:'F'}]
备注:如果你不需要键,即1:,2:那么得到结果= [object,object ...]。然后不需要第2步groupBy('name')
,filter
将按名称flatten
并过滤数组长度> 1 age
value()
使用 var duplicate = _.chain(result)
.map(function(value, key){return value;})
.groupBy('name')
.filter(function(array){ return array.length > 1})
.flatten()
.groupBy('age')
.filter(function(array){ return array.length > 1})
.flatten()
.value()
.length > 1 ? true: false ;
console.log(duplicate);
提取包装对象的值
{.........
doLogin (username, password) {
.......
.......
return this.http.get(api).subscribe(
data => {.....}, //enters here
err => {.....}
}