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

斯蒂芬·帕滕

我有2个数组,一个是newVal,另一个是origVal define

原始资料:

[
{"ListingId":1762276,"Rating":3,"ListPrice":7411828,"PropertyType":"Residential"},
{"ListingId":1826692,"Rating":3,"ListPrice":650000,"PropertyType":"Residential"},
{"ListingId":1833283,"Rating":4,"ListPrice":950000,"PropertyType":"Residential"},
{"ListingId":1832134,"Rating":3,"ListPrice":850000,"PropertyType":"Residential"},
{"ListingId":1829932,"Rating":4,"ListPrice":750000,"PropertyType":"Residential"},
{"ListingId":1827548,"Rating":5,"ListPrice":650000,"PropertyType":"Residential"}
]

新:

[
{"ListingId":1762276,"Rating":2,"ListPrice":7411828,"PropertyType":"Residential"},
{"ListingId":1826692,"Rating":3,"ListPrice":650000,"PropertyType":"Residential"},
{"ListingId":1833283,"Rating":4,"ListPrice":950000,"PropertyType":"Residential"},
{"ListingId":1832134,"Rating":3,"ListPrice":850000,"PropertyType":"Residential"},
{"ListingId":1829932,"Rating":4,"ListPrice":750000,"PropertyType":"Residential"},
{"ListingId":1827548,"Rating":5,"ListPrice":650000,"PropertyType":"Residential"}
]

如果我更改了新的评级之一,该如何检测到该变化并检索更改的对象?

一次只能进行一次更改,尽管我认为这并不重要。

仅供参考:这些数组是由Anjularjs watchcollection生成的

$scope.$watchCollection('items', function (new, old) {

}, true); 

谢谢斯蒂芬

乔纳森·纳金

看一下这个:

var a = [
{"ListingId":1762276,"Rating":3,"ListPrice":7411828,"PropertyType":"Residential"},
{"ListingId":1826692,"Rating":3,"ListPrice":650000,"PropertyType":"Residential"},
{"ListingId":1833283,"Rating":4,"ListPrice":950000,"PropertyType":"Residential"},
{"ListingId":1832134,"Rating":3,"ListPrice":850000,"PropertyType":"Residential"},
{"ListingId":1829932,"Rating":4,"ListPrice":750000,"PropertyType":"Residential"},
{"ListingId":1827548,"Rating":5,"ListPrice":650000,"PropertyType":"Residential"}
];

var b = [
{"ListingId":1762276,"Rating":2,"ListPrice":7411828,"PropertyType":"Residential"},
{"ListingId":1826692,"Rating":3,"ListPrice":650000,"PropertyType":"Residential"},
{"ListingId":1833283,"Rating":4,"ListPrice":950000,"PropertyType":"Residential"},
{"ListingId":1832134,"Rating":3,"ListPrice":850000,"PropertyType":"Residential"},
{"ListingId":1829932,"Rating":4,"ListPrice":750000,"PropertyType":"Residential"},
{"ListingId":1827548,"Rating":5,"ListPrice":650000,"PropertyType":"Residential"}
]

var difference = function(array){
   var rest = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1));

   var containsEquals = function(obj, target) {
    if (obj == null) return false;
    return _.any(obj, function(value) {
      return _.isEqual(value, target);
    });
  };

  return _.filter(array, function(value){ return ! containsEquals(rest, value); });
};

console.log(JSON.stringify(difference(b, a)));
> [{"ListingId":1762276,"Rating":2,"ListPrice":7411828,"PropertyType":"Residential"}]

该代码基于与下划线的原始功能差异,但是它使用isEqual在对象之间执行了深度比较

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

下划线js:将键对象与数组键对象进行比较(如果存在)删除现有的添加新的

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

仅使用下划线将数组转换为对象

来自分类Dev

如何使用下划线 js 从 2 个对象数组中获取不同的值

来自分类Dev

组对象数组下划线js

来自分类Dev

Javascript下划线数组到对象

来自分类Dev

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

来自分类Dev

用下划线合并对象数组

来自分类Dev

下划线数组到多个对象

来自分类Dev

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

来自分类Dev

下划线分组通过单面与嵌套对象属性进行比较

来自分类Dev

带2个变量的下划线

来自分类Dev

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

来自分类Dev

将多个数组对象转换为单个数组,下划线

来自分类Dev

如何使用下划线根据自定义排序顺序对对象数组进行排序

来自分类Dev

使用下划线groupby通过多个属性对对象数组进行分组

来自分类Dev

下划线从对象元素创建对象数组

来自分类Dev

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

来自分类Dev

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

来自分类Dev

比较2个Java脚本对象以发现差异

来自分类Dev

用下划线将矩阵转换为JavaScript中的对象数组

来自分类Dev

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

来自分类Dev

下划线强调将集合转换为对象的对象

来自分类Dev

使用下划线对对象进行角度深层搜索

来自分类Dev

下划线过滤对象

来自分类Dev

使用下划线对数组项进行分组

来自分类Dev

我如何使用下划线js合并对象数组

Related 相关文章

  1. 1

    下划线js:将键对象与数组键对象进行比较(如果存在)删除现有的添加新的

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

    仅使用下划线将数组转换为对象

  6. 6

    如何使用下划线 js 从 2 个对象数组中获取不同的值

  7. 7

    组对象数组下划线js

  8. 8

    Javascript下划线数组到对象

  9. 9

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

  10. 10

    用下划线合并对象数组

  11. 11

    下划线数组到多个对象

  12. 12

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

  13. 13

    下划线分组通过单面与嵌套对象属性进行比较

  14. 14

    带2个变量的下划线

  15. 15

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

  16. 16

    将多个数组对象转换为单个数组,下划线

  17. 17

    如何使用下划线根据自定义排序顺序对对象数组进行排序

  18. 18

    使用下划线groupby通过多个属性对对象数组进行分组

  19. 19

    下划线从对象元素创建对象数组

  20. 20

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

  21. 21

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

  22. 22

    比较2个Java脚本对象以发现差异

  23. 23

    用下划线将矩阵转换为JavaScript中的对象数组

  24. 24

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

  25. 25

    下划线强调将集合转换为对象的对象

  26. 26

    使用下划线对对象进行角度深层搜索

  27. 27

    下划线过滤对象

  28. 28

    使用下划线对数组项进行分组

  29. 29

    我如何使用下划线js合并对象数组

热门标签

归档