2如何使用UnderscoreJs比较2个JSON的所有属性(一个除外)?

里士

我正在使用下划线js的_.isFilter方法。如果我要检查2个JSON是否相同,它会完美地工作。但是我面临一个小问题。在一个JS中,我也有$$ hashKey作为属性,而在另一个JS中则不存在。我如何比较2个JSON的所有属性,除了一个属性,即$$ hashKey。

$rootScope.jsonOfHRA =  $scope.setFileNameAndOtherProperties($rootScope.jsonOfHRA);
globalJsonHRA = JSON.parse(JSON.stringify($rootScope.jsonOfHRA));

//This is how I make a deep copy of JSON

JSONOFHRA=
{
  "toShowVerified": 0,
  "sec10_decl_id": 390,
  "toShowEdit": 0,
  "toShowlineItemEditable": true,
  "edit": false,
  "sec10_decl_act_val": 0,
  "sec10_decl_other_text1": "asdsa",
  "sec10_decl_other_text2": "3434",
  "sec10_decl_other_text3": "adasda",
  "sec10_decl_decl_from_dt": "01/05/2014",
  "sec10_decl_status": 0,
  "sec10_decl_yr_end": "2015-03-31",
  "sec10_decl_yr_id": 2014,
  "listOfAttachments": [],
  "nameOfPayheadToShow": "HRA",
  "sec10_decl_proof": 0,
  "sec10_decl_ver_val": 0,
  "sec10_decl_yr_st": "2014-04-01",
  "sec10_decl_cust_id": 315,
  "add": false,
  "sec10_decl_curr_id": 0,
  "sec10_decl_mod_on": "2014-10-28 12:46:14.0",
  "sec10_decl_add_on": "2014-10-28 12:38:49.0",
  "sec10_decl_decl_to_dt": "30/06/2014",
  "sec10_decl_user_id": 32967,
  "sec10_decl_active": 0,
  "sec10_decl_decl_val": 1234,
  "sec10_decl_head_id": 3,
  "sec10_decl_decl_text": "Delhi",
  "$$hashKey": "19I"
}


GLOBALJSON = 
{
  "toShowVerified": 0,
  "sec10_decl_id": 390,
  "toShowEdit": 0,
  "toShowlineItemEditable": true,
  "edit": false,
  "sec10_decl_act_val": 0,
  "sec10_decl_other_text1": "asdsa",
  "sec10_decl_other_text2": "3434",
  "sec10_decl_other_text3": "adasda",
  "sec10_decl_decl_from_dt": "01/05/2014",
  "sec10_decl_status": 0,
  "sec10_decl_yr_end": "2015-03-31",
  "sec10_decl_yr_id": 2014,
  "listOfAttachments": [],
  "nameOfPayheadToShow": "HRA",
  "sec10_decl_proof": 0,
  "sec10_decl_ver_val": 0,
  "sec10_decl_yr_st": "2014-04-01",
  "sec10_decl_cust_id": 315,
  "add": false,
  "sec10_decl_curr_id": 0,
  "sec10_decl_mod_on": "2014-10-28 12:46:14.0",
  "sec10_decl_add_on": "2014-10-28 12:38:49.0",
  "sec10_decl_decl_to_dt": "30/06/2014",
  "sec10_decl_user_id": 32967,
  "sec10_decl_active": 0,
  "sec10_decl_decl_val": 1234,
  "sec10_decl_head_id": 3,
  "sec10_decl_decl_text": "Delhi"
}

//This is how I am comparing
if(_.isEqual(modifiedJson[i], GlobalUnmodifiedJson[j])){
                                        var idOfUnmodifiedLineItem = modifiedJson[i]["sec10_decl_id"];
                                        alert("Coming here in realm of unmodified of modifed");
                                        modifiedJson = _.filter(modifiedJson, function(item) {
                                            return item.id !== idOfUnmodifiedLineItem;
                                        });
戴文·崔恩(Davin Tryon)

您可以使用_.omit函数在stringify之前取出不想比较的键

underscore.js文档中

省略 _.omit(object, *keys)
返回该对象的副本,该对象经过过滤以省略列入黑名单的键(或键数组)。或者,接受一个谓词,该谓词表示要忽略的键。

_.omit({name: 'moe', age: 50, userid: 'moe1'}, 'userid');
=> {name: 'moe', age: 50}

_.omit({name: 'moe', age: 50, userid: 'moe1'}, function(value, key, object) {
    return _.isNumber(value);
});
=> {name: 'moe', userid: 'moe1'}

在你的情况,你可以创建从JSON,对象omit$$hashKey属性,然后进行比较。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 JavaScript,如何遍历 2 个 JSON 对象,比较它们的字段并根据比较创建一个新的 JSON 对象?

比较一个类中的2个对象属性

如何使用htacces重写所有https流量的规则(一个子域除外)

使用Python 2比较2个列表的所有元素

如何遍历一个类的所有属性?

如何获取一个类的所有属性

不是所有的代码路径在比较 2 个日期时都返回一个值?

使用 DynamoDB.Client.Scan(),如何检索一个属性不为空的所有记录?

使用一个属性比较两个CSV以比较另一个

创建一个存储过程,将它们之间的所有属性与sql server进行比较

R:具有2个X变量的分组箱线图,每组将所有样本与一个X2组进行比较

如何删除HTML表中的所有<tr>元素(第一个元素除外)

我如何在 R 中使用 group_by 将所有值与下一个值进行比较

如何使用MarkLogic XSLT修改一个JSON属性?

如何对齐除第一个 2 之外的所有列?

对所有行的一个malloc调用如何用于2D数组?

如果一个属性等于另一属性,如何查找所有记录

比较一个nn关系的所有记录

如何在一个视图中使用带有 2 个参数的 AVG()

MySQL在JSON中显示除一个属性外的所有属性

比较2个JSON文件并在值匹配时创建一个新密钥

比较2个列表和一个具有空值的列表

在numpy中,如何比较一个轴上的所有值

使用underscorejs创建一个计算重复项的对象

使用scala,当一个类的末尾有$时,如何比较两个类类型?

如何从两个列获取2 id并从另一个表获取所有记录

比较两个列表以返回一个列表,其中所有元素都为0,但保留索引时匹配的元素除外?

如果找到一个属性,如何获取对象的所有属性?

如何编写一个使用 2 种不同类型的对象但只有一个端点的服务?