文字列を使用してネストされた JavaScript オブジェクトのプロパティにアクセスする方法

DDD
リリース: 2024-11-20 15:35:16
オリジナル
586 人が閲覧しました

How to Access Nested JavaScript Object Properties Using a String?

ドット表記文字列を使用したオブジェクトの子プロパティへのアクセス

連鎖ドット表記を使用した JavaScript オブジェクトの子プロパティへのアクセスは、一般的なプログラミング タスクです。ただし、動的プロパティ アクセスにこのアプローチを使用する場合は制限があります。

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

var r = { a: 1, b: { b1: 11, b2: 99 } };
ログイン後にコピー

b2 の値にアクセスするには、標準のドット表記法を利用できます:

r.b.b2
ログイン後にコピー

ただし、

var s = "b.b2";
ログイン後にコピー

のような文字列に基づく動的プロパティ アクセスが必要な場合、r.s や r[s] のような直接的な試みは失敗します。解決策の 1 つは、文字列セグメントを反復処理してプロパティを取得するカスタム関数を使用することです。

function getDescendantProp(obj, desc) {
  var arr = desc.split(".");
  while (arr.length && (obj = obj[arr.shift()]));
  return obj;
}

console.log(getDescendantProp(r, "b.b2")); // 99
````

This function effectively simulates the behavior of dot notation by breaking down the string and recursively accessing the corresponding properties. However, it is important to note that this method works best for simple object property scenarios. Arrays can also be accessed using this approach by treating elements as dotted properties:
ログイン後にコピー

getDescendantProp({ a: [ 1, 2, 3 ] }, 'a.2'); // 3

以上が文字列を使用してネストされた JavaScript オブジェクトのプロパティにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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