JavaScriptでネストしたオブジェクト/配列を平坦化する
3939 ワード
私はthis questionきちんとした小さなアルゴリズムで答えた.
問題の前提は以下のことです.
最後に、すべての配列について再帰し、呼び出しが戻ったときに、返された配列を既存のプロパティを上書きしないように、現在の配列と組み合わせます.
ちょっと見て!
Javaでの入れ子オブジェクト/配列の平坦化
最初に、配列の項目を通してループ、 アイテムが配列の場合、再帰呼び出しを行います
復帰に関する
Open Full Answer
問題の前提は以下のことです.
[{ a: 2, b: [{ c: 3, d: [{e: 4, f: 5}, {e: 5,f: 6}]},
{ c: 4, d: [{e: 7, f: 8}]}
]
}]
これを:[{a:2,c:3,e:4,f:5}, {a:2,c:3,e:5,f:6}, {a:2,c:4,e:7,f:8}]
それは驚くほどトリッキーだった.私の最初のいくつかの試みは、常に重複を生産した.私は空白の結果オブジェクト“テンプレート”を作成し、その後、すべての配列のいずれかを埋めるが、それはあまりにも多くの仕事のように聞こえたと考えた.最後に、すべての配列について再帰し、呼び出しが戻ったときに、返された配列を既存のプロパティを上書きしないように、現在の配列と組み合わせます.
ちょっと見て!
Javaでの入れ子オブジェクト/配列の平坦化
9月22日
1
ビヘモスのビットです、そして、それはキーの順序を保存しません、しかし、それは複製なしで働きます.
これは再帰的なので、コールスタックに注意してください.
復帰に関する
Reference
この問題について(JavaScriptでネストしたオブジェクト/配列を平坦化する), 我々は、より多くの情報をここで見つけました https://dev.to/mellen/answer-flatten-nested-object-array-in-javascript-4d4nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol