ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でドット表記文字列を使用してネストされたオブジェクトのプロパティにアクセスする方法

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 02:19:12580ブラウズ

How to Access Nested Object Properties Using Dot Notation Strings in JavaScript?

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

ネストされたオブジェクトを扱う場合、深く埋め込まれたプロパティにアクセスするのは面倒な場合があります。文字列ドット表記を使用してこれを実現する理想的な方法を決定することは、多くの開発者を悩ませてきました。

次のように定義されたオブジェクトを考えてみましょう:

var r = { a: 1, b: { b1: 11, b2: 99 } };

b2 の値にアクセスするには、通常、次を使用できます。 :

r.b.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")); // Outputs 99

この関数は、ドットで区切られたパスに基づいてオブジェクト階層を再帰的に下降し、最終値を返します。特に、ドット表記を使用した配列インデックスへのアクセスも処理できます:

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

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

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