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

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

DDD
DDDオリジナル
2024-12-05 03:00:11865ブラウズ

How to Dynamically Set Nested JavaScript Object Properties Using String Names?

JavaScript で文字列名を使用してオブジェクトのプロパティを動的に設定する

オブジェクトに複雑な入れ子構造がある場合、特定のプロパティを設定することが望ましい場合があります。オブジェクト階層の奥深くにあるプロパティ。ただし、プロパティ名が文字列としてのみ利用可能な場合、従来の代入手法は非効率になります。

この課題に対処するために、 assign() 関数は、オブジェクト プロパティを走査して設定するための再帰的アプローチを示します。

function assign(obj, prop, value) {
    if (typeof prop === "string")
        prop = prop.split(".");

    if (prop.length > 1) {
        var e = prop.shift();
        assign(obj[e] =
                 Object.prototype.toString.call(obj[e]) === "[object Object]"
                 ? obj[e]
                 : {},
               prop,
               value);
    } else
        obj[prop[0]] = value;
}

var obj = {},
    propName = "foo.bar.foobar";

assign(obj, propName, "Value");

この関数を使用すると、プロパティ名が文字列。

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

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