将两个对象进行深度比较或与json.stringify比较?

Lea*_*sed 5 javascript angularjs lodash

我有一个要比较的复杂JSON对象,如下所示:

$scope.new = [
  {
    "name": "Node-1",
    "isParent": true,
    "text" : [
       {
           "str" : "This is my first Node-1 string",
           "parent":[]
       },
       {
          "str" : "This is my second Node-1 string",
           "parent":[]
       }],
     "nodes": [
      {
        "name": "Node-1-1",
        "isParent": false,
         "text" : [
           {
             "str" : "This is my first Node-1-1 string",
             "parent":[]
           },
           {
             "str" : "This is my second Node-1-1 string",
             "parent":[]
           }],
           "nodes": [
           {
            "name": "Node-1-1-1",
            "isParent": false,
            "text" : [
            {
              "str" : "This is my first Node-1-1-1 string",
              "parent":[]
            },
            {
              "str" : "This is my second Node-1-1-1 string",
              "parent":[]
            }],
            "nodes": []
          }
        ]
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

但是在比较时我也想忽略1属性,但是当我使用Angular.js时,我看不到angular.equal在比较2对象时会忽略该属性的任何选项。

 console.log(angular.equals($scope.new,$scope.copy)); 
Run Code Online (Sandbox Code Playgroud)

因此,在进行研究时,我得到了以下答案,该答案使用的是具有发出选项的lodash,但问题是我想省略创建副本,并且在lodash的情况下会降低性能。

使用lodash的isEqual()在比较中排除一些属性

因此,现在我正在考虑将对象转换为字符串,然后进行比较,我想那会很快,但是问题是在字符串比较时如何忽略该属性?

像这样:

var str1 = JSON.stringify(JSON.stringify($scope.new));

var str2 = JSON.stringify(JSON.stringify($scope.copy));

console.log(str1==str2);
Run Code Online (Sandbox Code Playgroud)

注意:我想isParent在比较2个对象时忽略属性。

比较2个对象的最佳方法是什么?