在下划线中的对象中查找对象中的重复项
Find duplicates in objects within an object in underscore
我有一个像下面这样的对象:
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。
我该怎么做?
谢谢。
一种方法是
- 链接
result
对象 - 将其传递给
map
,因此我们可以得到一个值数组,即 [{姓名:'约翰', 年龄: 20, 性别:'M'},{姓名:'史密斯', 年龄: 25, 性别:'M'}, {姓名:'约翰', 年龄: 20, 性别:'M'},{姓名:'约翰', 年龄: 22, 性别:'M'},{姓名:'安娜', 年龄: 22, 性别:'F'}]备注:如果您不需要键,即 1:, 2:,则得到结果作为结果 = [对象,对象...]。那么步骤 2 就不是必需
的 - 将其传递给
groupBy('name')
,将按名称将数组分组为 2 - 将其传递给
filter
并在数组长度> 1 的位置对其进行过滤 - 由于结果是嵌套的,因此请将其传递给
flatten
- 现在重复 3 到 5 进行
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);
吉斯菲德尔
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在对象数组中查找多个值的d3范围
- Javascript:根据对象的嵌套数组中的值,在数组中查找对象的索引
- 如何从数组中查找唯一对象
- 使用lodash查找具有truthy值的JS对象的属性
- 正在数组中查找对象
- 在prototypejs中查找对象的类
- Undercore:查找数组中出现频率最高的对象
- 通过知道对象的id在JSON中查找对象
- 查找关键字并创建新对象
- Javascript在JSON中查找对象(我使用Angular)
- 查找对象数组是否包含其中一个标记的最快方法
- 查找数组's按属性不存在于另一个数组中的对象
- JSON.parse 返回 [对象对象] 查找访问对象的属性
- 角度指令与对象查找的双向绑定
- 将数组转换为快速对象查找
- jQuery对象查找只在一个子对象上失败
- Javascript嵌套对象查找,从字符串,没有eval
- RegExp对象查找和替换不起作用
- 如何使用保存的 jQuery 对象查找后代