JavaScriptでネストしたオブジェクト/配列を平坦化する


私はthis questionきちんとした小さなアルゴリズムで答えた.
問題の前提は以下のことです.
[{ 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

ビヘモスのビットです、そして、それはキーの順序を保存しません、しかし、それは複製なしで働きます.
これは再帰的なので、コールスタックに注意してください.
  • 最初に、配列の項目を通してループ、
  • アイテムが配列の場合、再帰呼び出しを行います
    復帰に関する

  • Open Full Answer