ホームページ > ウェブフロントエンド > jsチュートリアル > Pure JavaScript で JSON オブジェクト ツリーを効率的に走査するにはどうすればよいですか?

Pure JavaScript で JSON オブジェクト ツリーを効率的に走査するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-30 17:34:15
オリジナル
142 人が閲覧しました

How Can I Efficiently Traverse a JSON Object Tree in Pure JavaScript?

外部ライブラリを使用しない JavaScript での JSON オブジェクト ツリーの走査

複雑なデータ構造を扱う場合、JSON オブジェクト ツリーの走査は一般的なタスクになる可能性があります。 JavaScript には、オブジェクトを操作するための関数の豊富なライブラリが用意されていますが、オブジェクト ツリーを走査するための専用のライブラリはありません。これは簡単な作業のように思えるかもしれませんが、多くの場合、車輪の再発明につながります。

ツリーを走査するためのさまざまな DOM ベースのアプローチを提供する XML とは異なり、JavaScript には JSON オブジェクトに対する同様のメカニズムがありません。この記事では、純粋な JavaScript 関数を使用して JSON オブジェクト ツリーを走査するための効率的かつ簡単なソリューションを紹介します。

カスタム再帰走査関数

この解決策には、JSON オブジェクト ツリーを走査するカスタム再帰関数の作成が含まれます。オブジェクトツリー。関数 traverse() は 2 つのパラメータを取ります:

  • o: トラバースする JSON オブジェクト
  • func: ツリー内の各ノードを処理するコールバック関数

関数は、オブジェクト内の各プロパティとその値を反復処理します。プロパティと値のペアごとに、コールバック関数を呼び出してデータを処理します。値が別のオブジェクトであり、null ではない場合、関数はそれ自体を再帰的に呼び出して子オブジェクトを走査します。

使用例

使用法を示すために、次のことを考えてみましょう。 JSON オブジェクト:

var o = { 
    foo:"bar",
    arr:[1,2,3],
    subo: {
        foo2:"bar2"
    }
};
ログイン後にコピー

それぞれのキーと値を記録する process() 関数を定義します。これで、次の出力が得られます。出力にはサブオブジェクトのキーが含まれますが、そのプロパティは含まれません。これは、traverse() 関数がサブオブジェクトを再帰的に走査しないためです。全深度のトラバーサルを実現するには、それに応じてコードを変更する必要があります。

以上がPure JavaScript で JSON オブジェクト ツリーを効率的に走査するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート