私は以下のように比較したい複雑なJSONオブジェクトを持っています:2つのオブジェクトを深い比較またはjson.stringifyと比較しますか?
$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": []
}
]
}
]
}
]
をしかし、比較しながら、私も1つのプロパティを無視したいが、私はAngular.jsを使用していますように私は、のいずれかのオプションが表示されませんangular.equal
2つのオブジェクトを比較しながらそのプロパティを省略します。
console.log(angular.equals($scope.new,$scope.copy));
研究をしながらだから私はオプションを発するが、問題は、私はコピーを作成して省略し、私はlodashの場合のパフォーマンスの低下を持っているだろうと思い推測されたlodash使用している答え以下となりました。
Exclude some properties in comparison using isEqual() of lodash
だから今、私は、文字列にオブジェクトを変換してから比較を行うことを考えていますし、私はそれが速くなります推測するが、問題は、私は文字列比較しながら、そのプロパティを省略する方法ですか?
var str1 = JSON.stringify(JSON.stringify($scope.new));
var str2 = JSON.stringify(JSON.stringify($scope.copy));
console.log(str1==str2);
注:私は2オブジェクトを比較しながらisParent
プロパティを無視したい、このような
何か。
比較オブジェクト2を行う最良の方法は何ですか?
あなただけの 'isParent'を無視するように探しています上のオブジェクト、またはすべての入れ子にされたオブジェクトにも同様に比較しますか? –
@GuillermoMoratorio:比較するときにすべてのネストされたオブジェクトのisParentを無視したい –