外部ライブラリを使用しない JavaScript での JSON オブジェクト ツリーの走査
複雑なデータ構造を扱う場合、JSON オブジェクト ツリーの走査は一般的なタスクになる可能性があります。 JavaScript には、オブジェクトを操作するための関数の豊富なライブラリが用意されていますが、オブジェクト ツリーを走査するための専用のライブラリはありません。これは簡単な作業のように思えるかもしれませんが、多くの場合、車輪の再発明につながります。
ツリーを走査するためのさまざまな DOM ベースのアプローチを提供する XML とは異なり、JavaScript には JSON オブジェクトに対する同様のメカニズムがありません。この記事では、純粋な JavaScript 関数を使用して JSON オブジェクト ツリーを走査するための効率的かつ簡単なソリューションを紹介します。
カスタム再帰走査関数
この解決策には、JSON オブジェクト ツリーを走査するカスタム再帰関数の作成が含まれます。オブジェクトツリー。関数 traverse() は 2 つのパラメータを取ります:
関数は、オブジェクト内の各プロパティとその値を反復処理します。プロパティと値のペアごとに、コールバック関数を呼び出してデータを処理します。値が別のオブジェクトであり、null ではない場合、関数はそれ自体を再帰的に呼び出して子オブジェクトを走査します。
使用例
使用法を示すために、次のことを考えてみましょう。 JSON オブジェクト:
var o = { foo:"bar", arr:[1,2,3], subo: { foo2:"bar2" } };
それぞれのキーと値を記録する process() 関数を定義します。これで、次の出力が得られます。出力にはサブオブジェクトのキーが含まれますが、そのプロパティは含まれません。これは、traverse() 関数がサブオブジェクトを再帰的に走査しないためです。全深度のトラバーサルを実現するには、それに応じてコードを変更する必要があります。
以上がPure JavaScript で JSON オブジェクト ツリーを効率的に走査するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。