ドット表記文字列を使用したオブジェクトの子プロパティへのアクセス
連鎖ドット表記を使用した 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 サイトの他の関連記事を参照してください。