使用下划线比较两个对象列表并获得唯一对象

萨纳特

我们有2个JavaScript对象列表。

var AList = [{id:1,name:"AA"},{id:2,name:"BB"},{id:3,name:"CC"},{id:4,name:"DD"},{id:5,name:"EE"},{id:6,name:"FF"}]

var BList = [{id:1,name:"AA"},{id:2,name:"BB"},{id:3,name:"CC"},{id:4,name:"DD"}]

我们需要从两个列表中消除重复项,并返回AList唯一的内容。(编号5和6)

我为此使用了通用的JavaScript实现,但是我想基于下划线实现更时尚的解决方案。

for(var i=0;i<AList.length;i++){
    for(var j=0;j<fBList.length;j++){
        if(AList[i] && fBList[j] && (AList[i].id == BList[j].id)){
            delete AList[i];
        }
    }
}
var uniqueList= _.uniq(AList);

在删除重复项的列表完成之后,重复项所在的位置就存在空元素,因此我们需要使用它_uniq来获得唯一的一组值。

_.difference(AList,BList) 

不提供答案。

贝吉

不幸的是,_.difference确实使用严格的相等性,并且无法通过自定义的相等性回调来更改它。您仍然需要手动计算它:

AList = _.uniq(AList, _.property('id'));
BList = _.uniq(BList, _.property('id'));

var bIds = _.pluck(BList, "id");
_.filter(AList, function(el) { return !_.contains(bIds, el.id); })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用下划线比较两个对象并用一个对象替换公共值

来自分类Dev

下划线-比较对象(位置)的两个数组

来自分类Dev

如何通过带下划线的值返回格式化的唯一对象数组?

来自分类Dev

如何创建具有两个不同列表的唯一对象?

来自分类Dev

lodash /下划线;比较两个对象并删除重复项

来自分类Dev

为什么BEM经常使用两个下划线而不是一个下划线?

来自分类Dev

使用下划线js的对象对象两个数组的咖啡脚本的区别

来自分类Dev

缩放同一对象的两个网格

来自分类Dev

我如何使用下划线获取基于对象属性的唯一数组

来自分类Dev

使用下划线从对象列表中过滤匹配值

来自分类Dev

使用下划线从对象列表中过滤匹配值

来自分类Dev

比较具有自定义功能的唯一对象列表

来自分类Dev

如何使用下划线将数组或对象推入一个数组?

来自分类Dev

使用下划线将对象属性合并到一个数组中

来自分类Dev

使用下划线将对象属性合并到一个数组中

来自分类Dev

从多个列表和列表列表中获取唯一对象。然后使用所有列表中的唯一对象创建一个新列表

来自分类Dev

使用下划线从对象创建数组

来自分类Dev

使用下划线检查数组是否包含两个值中的任何一个

来自分类Dev

下划线过滤对象

来自分类Dev

将2个对象数组与下划线进行比较以发现差异

来自分类Dev

如何合并两个数组,类似于对象的下划线扩展方法

来自分类Dev

对于虚拟变量__(两个下划线)是否优于_(单个下划线)?

来自分类Dev

对于虚拟变量,__(两个下划线)是否优于_(单个下划线)?

来自分类Dev

如何使用大型数据集最大程度地减少运行时间(从93,773个对象列表中构成唯一对象列表)

来自分类Dev

===当两个引用都应指向同一对象时,在Nashorn中返回false

来自分类Dev

javascript两个同名变量共存于同一对象中?

来自分类Dev

对同一对象的两个引用是否可能是!==?

来自分类Dev

如何确定两个Win32 API句柄代表同一对象?

来自分类Dev

EF代码首先,指向同一对象的两个导航属性

Related 相关文章

  1. 1

    使用下划线比较两个对象并用一个对象替换公共值

  2. 2

    下划线-比较对象(位置)的两个数组

  3. 3

    如何通过带下划线的值返回格式化的唯一对象数组?

  4. 4

    如何创建具有两个不同列表的唯一对象?

  5. 5

    lodash /下划线;比较两个对象并删除重复项

  6. 6

    为什么BEM经常使用两个下划线而不是一个下划线?

  7. 7

    使用下划线js的对象对象两个数组的咖啡脚本的区别

  8. 8

    缩放同一对象的两个网格

  9. 9

    我如何使用下划线获取基于对象属性的唯一数组

  10. 10

    使用下划线从对象列表中过滤匹配值

  11. 11

    使用下划线从对象列表中过滤匹配值

  12. 12

    比较具有自定义功能的唯一对象列表

  13. 13

    如何使用下划线将数组或对象推入一个数组?

  14. 14

    使用下划线将对象属性合并到一个数组中

  15. 15

    使用下划线将对象属性合并到一个数组中

  16. 16

    从多个列表和列表列表中获取唯一对象。然后使用所有列表中的唯一对象创建一个新列表

  17. 17

    使用下划线从对象创建数组

  18. 18

    使用下划线检查数组是否包含两个值中的任何一个

  19. 19

    下划线过滤对象

  20. 20

    将2个对象数组与下划线进行比较以发现差异

  21. 21

    如何合并两个数组,类似于对象的下划线扩展方法

  22. 22

    对于虚拟变量__(两个下划线)是否优于_(单个下划线)?

  23. 23

    对于虚拟变量,__(两个下划线)是否优于_(单个下划线)?

  24. 24

    如何使用大型数据集最大程度地减少运行时间(从93,773个对象列表中构成唯一对象列表)

  25. 25

    ===当两个引用都应指向同一对象时,在Nashorn中返回false

  26. 26

    javascript两个同名变量共存于同一对象中?

  27. 27

    对同一对象的两个引用是否可能是!==?

  28. 28

    如何确定两个Win32 API句柄代表同一对象?

  29. 29

    EF代码首先,指向同一对象的两个导航属性

热门标签

归档