平面配列からツリー配列を構築する


再帰的な方法でコメントを表示する代入を得ました.

サーバから取得したデータは平らで、意味がありました.
配列の各項目は親のように参照を保持します.
const entries = [
  {
    index: 1,
    parent: 0
  },
  {
    index: 2,
    parent: 1
  },
  {
    index: 3,
    parent: 2
  },
   ...
   ...
   ];
この問題を攻撃する方法を考えた後、私は実現した
再帰的なオブジェクトが欲しいならば、最も簡単な解決は再帰的な解決です
以下はフラット配列をツリー配列に変換する関数です.
const arrayToTree = (arr, parent = 0) =>
  arr.filter(item => item.parent === parent)
     .map(child => ({ ...child, children: arrayToTree(arr, 
     child.index) }));
クイックランダウン
  • 最初にフィルタリングするroot parent 'sの子供たち.
  • それから、我々はちょうど我々がつかまえた子供たちの各々に、同じことをします
  • スタックオーバーフロー問題に対する私の答え


    ここでは、解決策のデータotでもっとプレイしたい場合はcodepenです.
    私を助けてくれた情報源
  • Styling Comment Threads