ホームページ >ウェブフロントエンド >jsチュートリアル >文字列パスを使用して深くネストされたオブジェクト値にアクセスするにはどうすればよいですか?

文字列パスを使用して深くネストされたオブジェクト値にアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 19:24:02480ブラウズ

How can I Access Deeply Nested Object Values Using a String Path?

文字列パス経由で深くネストされたオブジェクト値を取得する

特に文字列パスを使用してオブジェクトを走査する場合、深くネストされたオブジェクトのプロパティにアクセスするのは面倒になることがあります。この質問では、指定された文字列パスに基づいてオブジェクトから値を取得する解決策を求めます。

提案された解決策

提案されたアプローチでは、次の関数 deep_value を使用し、パス文字列:

<code class="javascript">var deep_value = function(obj, path) {
  for (var i = 0, path = path.split('.'), len = path.length; i < len; i++) {
    obj = obj[path[i]];
  }
  return obj;
};</code>

内訳

  • split('.') 操作は、文字列パスをプロパティ名の配列に変換します。
  • ループはオブジェクトを走査し、各プロパティに順番にアクセスするために使用されます。
  • 最後の反復により、最終的にネストされた値が返されます。

次のオブジェクトについて考えてみましょう:

var obj = {
  foo: { bar: 'baz' }
};

文字列パス「foo.bar」を使用して obj.foo.bar の値にアクセスするには、deep_value 関数を次のように呼び出すことができます:

deep_value(obj, "foo.bar"); // returns "baz"

以上が文字列パスを使用して深くネストされたオブジェクト値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。