javascriptで配列をツリー構造に変換する方法

user2686786

これは私の配列です。祖父母->親->子の名前の関係で階層ツリーを組み立てようとしています。これを修正するのを手伝ってください。サンプル入力は以下のようになります

data = 
[
{name:'111',parent:'11',grandparent:'1'},
{name:'112',parent:'11',grandparent:'1'},
{name:'121',parent:'12',grandparent:'1'},
{name:'211',parent:'21',grandparent:'2'}
]

期待される出力は次のようなものです。構文エラーがある場合は無視してください

[
    {
    name:'1',
    children:[
              {
                name:'11',
                children:[
                    {
                        name:'111',
                        children:[]
                    },
                    {
                        name:'112',
                        children:[]
                    }
                ]
              },
              {
                  name:'12',
                  children:[
                    {
                        name:'121',
                        children:[]
                    }
                  ]
              },
              {
                  name:'21',
                  children:[
                    {
                        name:'211',
                        children:[]
                    }

                  ]
              }
            
            ]
        }
    ]
Nenad Vracar

reduceforEachメソッドを使用してネストされた構造と、反復するキーの順序を指定できる1つの配列を作成できます。

const data = [{"name":"111","parent":"11","grandparent":"1"},{"name":"112","parent":"11","grandparent":"1"},{"name":"121","parent":"12","grandparent":"1"},{"name":"211","parent":"21","grandparent":"2"}]

const order = ['grandparent', 'parent', 'name'];
const result = [];
const levels = {result}

data.forEach(o => {
  order.reduce((r, e) => {
    const name = o[e];
    if (!r[name]) {
      const value = {name, children: []}
      r[name] = {result: value.children}
      r.result.push(value)
    }

    return r[name]
  }, levels)
})

console.log(result)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

javascriptで親子配列をjsonツリー構造に変換する方法

PHPでツリー構造をフラット配列に変換する方法

ツリー構造を2D配列に変換する

Pythonで文字列をツリー構造に変換する

JavaScript: `eval`を使用せずにフラット配列をツリーのような構造に変換する

URLの配列をツリー/フォルダ構造データに変換する方法は?

Javaでツリー構造を2Dの「グリッド」配列に変換する

Rubyは配列の配列をツリー構造に変換します

データ構造を別のツリー構造に変換する方法

JSでjsonをツリー配列に変換する方法は?

配列をツリーのような構造に動的に変換します

JavaScript:線形JSON配列を深さが不明なツリー構造に変換します

javascriptはネストされた辞書を配列構造のようなツリーに変換します

配列変換ツリー構造

文字列を構造体配列に変換する方法

ツリー構造をJavaでノードのストリームに変換する方法

ディレクトリ構造をURLの配列に変換する方法

構造体の配列をリストレルムに変換する方法は?

JavaScriptのフォルダ構造のようなツリーにjsonを変換する方法

パスの配列をJSON構造に変換する方法は?

構造体を作業配列に変換する方法C

整数の配列をツリーに変換する方法は?

配列をN-aryツリーに変換する方法は?

ツリーを配列に変換する方法は?

C ++ / Ocaml間でツリーデータ構造を安全に変換する方法は?

配列をルックアップデータ構造に変換する方法

Javascriptで配列の結果ツリーを子-親から親-子に変換する方法

文字列を配列に変換する方法どの文字列が配列構造であるか

ツリー構造を配列に平坦化する

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ