vue配列をツリー構造に変換する
Vue は、多くの操作が配列に基づいている人気のあるフロントエンド フレームワークです。 Vue で複雑なツリー構造データを表示する必要がある場合、ページ上での表示と操作を容易にするために、配列をツリー構造データに変換する必要があります。この記事ではVue配列をツリー構造に変換する実装方法を紹介します。
- データ構造を決定する
変換を実行する前に、まず変換するデータ構造を決定する必要があります。この記事では、例として次のデータ構造を取り上げます。 :
let dataArray = [ { id: 1, name: 'parent1', parentId: 0 }, { id: 2, name: 'parent2', parentId: 0 }, { id: 3, name: 'child1', parentId: 1 }, { id: 4, name: 'child2', parentId: 1 }, { id: 5, name: 'child3', parentId: 2 }, { id: 6, name: 'grandchild1', parentId: 3 }, { id: 7, name: 'grandchild2', parentId: 3 } ];
各要素には、ID、名前、および親要素の ID が含まれます。このデータ構造は、親子関係を持つツリー構造を表現するために使用できます。
- 変換メソッドの実装
次に、変換メソッドを実装する必要があります。データ構造に従って、ノード クラスを定義できます。
class Node{ constructor(data){ this.id = data.id; this.name = data.name; this.parentId = data.parentId; this.children = []; } }
このうち、id、name、parentId はノードの親ノードの ID、名前、ID を表し、子はコレクションを表します。ノードの下の子ノードの数。
次に、元の配列に基づいてルート ノードを作成します。
function buildTree(dataArray) { let root = new Node({ id: 0, name: 'root', parentId: null }); // 循环处理每个节点 for(let i=0;i<dataArray.length;i++){ let data = dataArray[i]; let node = new Node(data); // 添加到父节点下 let parent = findNode(root, data.parentId); parent.children.push(node); } return root.children; } // 根据id查找节点 function findNode(node, targetId) { if (node.id === targetId) { return node; } else { for (let i = 0; i < node.children.length; i++) { let result = findNode(node.children[i], targetId); if (result !== null) { return result; } } return null; } }
buildTree メソッドでは、最初にルート ノードを作成し、次に dataArray をループして各ノードを作成し、これは、親ノードの Children プロパティに追加されます。
findNode メソッドは、指定された ID を持つノードを検索するために使用されます。ループ中にノードが見つかったら、それを親ノードの Children 属性に追加します。
- テスト結果
これでメソッドをテストできます:
let treeData = buildTree(dataArray); console.log(JSON.stringify(treeData));
出力結果は次のとおりです:
[ { "id": 1, "name": "parent1", "parentId": 0, "children": [ { "id": 3, "name": "child1", "parentId": 1, "children": [ { "id": 6, "name": "grandchild1", "parentId": 3, "children": [] }, { "id": 7, "name": "grandchild2", "parentId": 3, "children": [] } ] }, { "id": 4, "name": "child2", "parentId": 1, "children": [] } ] }, { "id": 2, "name": "parent2", "parentId": 0, "children": [ { "id": 5, "name": "child3", "parentId": 2, "children": [] } ] } ]
参照 この時点で、元の配列がツリー構造データに正常に変換されました。
- 概要
Vue では多くの操作が配列と切り離せないため、複雑なツリー構造データを表示する必要がある場合、配列をツリー構造データに変換できます。この記事では、Vue 配列をツリー構造に変換する実装方法を紹介します。まず、データ構造を決定し、次に変換メソッドを実装し、最後にテストして正しい結果を取得します。このメソッドを使用して Vue 配列データを変換し、ページ上での表示と操作を容易にすることができます。
以上がvue配列をツリー構造に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

怠zyな読み込みは、必要になるまでコンテンツの読み込みを遅延させ、初期負荷時間とサーバーの負荷を削減することにより、Webパフォーマンスとユーザーエクスペリエンスを改善します。

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

この記事では、予測可能性、パフォーマンス、ユースケースなどの側面に焦点を当てた、Reactの制御されていないコンポーネントと制御されていないコンポーネントの利点と欠点について説明します。それらを選択する際に考慮することを要因についてアドバイスします。
