ホームページ >ウェブフロントエンド >jsチュートリアル >ネストされた JavaScript オブジェクトのプロパティを動的に設定するにはどうすればよいですか?

ネストされた JavaScript オブジェクトのプロパティを動的に設定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 08:16:29351ブラウズ

How to Dynamically Set Properties in Nested JavaScript Objects?

ネストされたオブジェクトでの動的プロパティの割り当て

ネストされたオブジェクトのプロパティの設定は、特にプロパティのパスと値の深さと型が異なる場合、プログラム的に複雑なタスクになる可能性があります。このプロセスを簡素化するために、オブジェクト内のプロパティを動的に走査して設定する関数を作成できます。

関数の実装

<code class="javascript">function set(path, value) {
    var schema = obj; // Moving reference to internal objects within obj
    var pList = path.split('.');
    var len = pList.length;

    for (var i = 0; i < len - 1; i++) {
        var elem = pList[i];
        if (!schema[elem]) schema[elem] = {};
        schema = schema[elem];
    }

    schema[pList[len - 1]] = value;
}</code>

使用例

次のネストされたオブジェクトを考えてみましょう。 :

<code class="javascript">var obj = {
    db: {
        mongodb: {
            host: 'localhost'
        }
    }
};</code>

特定のパスでプロパティを設定するには、set() 関数を使用できます。

<code class="javascript">set('db.mongodb.user', 'root');</code>

結果

set() 関数の適用サンプルオブジェクトにすると次のようになります:

<code class="javascript">obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    }
};</code>

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

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