JavaScriptオブジェクトは2セットあります。 object1とobject2を比較し、object1にあるがobject2にないすべてのキーのリストを取得したい。私は私を助けるためのリソースを探していますが、私は単純なオブジェクトの比較関数を見つけることに終わっただけです。私が比較したいオブジェクトには多くのネストがあります。私は一番下に例を挙げました。2つのJavaScriptオブジェクトのキーの比較
これらの2つのオブジェクトを比較する関数を作成するにはどうすればよいですか?柔軟性のある関数を作成することは可能ですか?オブジェクトが変更され、より多くの入れ子を含む場合にも機能しますか?
const object1 = {
"gender": "man",
"age": 33,
"origin": "USA",
"jobinfo": {
"type": "teacher",
"school": "Wisconsin"
},
"children": [
{
"name": "Daniel",
"age": 12,
"pets": [
{
"type": "cat",
"name": "Willy",
"age": 2
},
{
"type": "dog",
"name": "jimmie",
"age": 5
}
]
},
{
"name": "Martin",
"age": 14,
"pets": [
{
"type": "bird",
"name": "wagner",
"age": 12
}
]
}
],
"hobbies": {
"type": "football",
"sponsor": {
"name": "Pepsi",
"sponsorAmount": 1000,
"contact": {
"name": "Leon",
"age": 59,
"children": [
{
"name": "James",
"pets": [
{
"type": "dog",
"age": 4
}
]
}
]
}
}
}
}
const object2 = {
"gender": "man",
"jobinfo": {
"type": "teacher"
},
"children": [
{
"name": "Daniel",
"age": 12,
"pets": [
{
"type": "cat",
"name": "Willy",
"age": 2
},
{
"type": "dog",
"name": "jimmie",
"age": 5
}
]
}
]
}
は、だから私はこれらの2つのオブジェクトを比較することによって、達成したいものを、オブジェクト1にあるキーで構成される配列の戻り値を持つように、この場合ですが、object2はありません。配列はこのようになります。
["age", "hobbies", "type", "sponsor", "name", "sponsorAmount", "contact", "name", "age", "children", "name", "pets", "type", "age"].
これまでのところ私がこれまでに得たことです。これは一種の働きです。しかし、年齢は入れ子にされたオブジェクトの複数に存在するプロパティなので、例えば年齢が表示されません。 jsfiddle:
希望の結果を追加してくださいと何をしようとしています。おそらく一見の価値:[mcve]。 –
申し訳ありませんが、私は今、より多くの情報で投稿を更新しました。フィードバックをお寄せいただきありがとうございます。 –
配列のインデックスも必要ですか?あなたは繰り返しの順序で結果が必要ですか? –