-1
以下のjsonオブジェクトのjavascript/jqueryで再帰関数が必要です。再帰関数異なるキーを持つオブジェクトの配列のJavaScriptで
「影響を受ける」キーは、各レベルのリーフノードです。
キー「子」には、「影響を受けた」ノードが含まれている可能性のある任意の数のレベルがあります。
私はすべてのレベルでリーフノード(「影響を受ける」)を同じレベルの子(「子」)ノードにマージしたいと考えています。
これは、どのレベルの子ノードも同じレベルでデータに影響を与える必要があることを意味します。
入力
{
"Data": [{
"id": 1745,
"name": "Top Parent",
"parentId": null,
"child": [{
"id": 1746,
"name": "Sub Parent- child to Top Parent",
"parentId": 1745,
"child": [{
"id": 1747,
"name": "child to Sub Parent--One ",
"parentId": 1746
},
{
"id": 1748,
"name": "child to Sub Parent--two",
"parentId": 1746,
"child": [{
"id": 1749,
"name": "Child to two",
"parentId": 1748
}],
"impacted": [{
"id": 2471,
"name": "Leaf of two ",
"network": true
}]
}
],
"impacted": [{
"id": 2470,
"name": "Leaf of Sub Parent-1 ",
"network": true
},
{
"id": 2469,
"name": "Leaf of Sub Parent-1",
"network": true
}
]
}],
"impacted": [{
"id": 2468,
"name": "Leaf Of Top Parent",
"network": true
}]
}]
}
予想される出力
{
"Data": [{
"id": 1745,
"name": "Top Parent",
"parentId": null,
"child": [{
"id": 1746,
"name": "Sub Parent- child to Top Parent",
"parentId": 1745,
"child": [{
"id": 1747,
"name": "child to Sub Parent--One ",
"parentId": 1746
},
{
"id": 1748,
"name": "child to Sub Parent--two",
"parentId": 1746,
"child": [{
"id": 1749,
"name": "Child to two",
"parentId": 1748
},
{
"id": 2471,
"name": "Leaf of two ",
"network": true
}
]
},
{
"id": 2470,
"name": "Leaf of Sub Parent-1 ",
"network": true
},
{
"id": 2469,
"name": "Leaf of Sub Parent-1",
"network": true
}
]
},
{
"id": 2468,
"name": "Leaf Of Top Parent",
"network": true
}
]
}]
}
我々は、オブジェクトからの "影響を受ける" キーを削除しない場合でも、それはOKです。しかし、「影響を受けた」データは、同じレベルの「子」にマージする必要があります。
私はあなたのコードの主な問題は、あなたが内部の再帰的関数を呼び出すことである
あなたは、各コード行の前に4つのスペースを入れて、あなたの例のデータを縮小化できますか? –