JavaScript で文字列名を使用したネストされたオブジェクト プロパティの設定
JavaScript では、オブジェクト プロパティへのアクセスと変更はデータの管理に不可欠です。ただし、直接のキー シーケンスではなく、文字列としてプロパティ名のみが提供された場合はどうなるでしょうか?これは、プロパティが動的に生成されるか、ユーザー入力として受信されるシナリオで発生する可能性があります。
次のオブジェクトを考えてみましょう:
var obj = {};
プロパティ名:
var propName = "foo.bar.foobar";
obj.foo.bar.foobar の値を設定するには、従来は次のコマンドを使用します。構文:
obj.foo.bar.foobar = "hello world";
ただし、このアプローチでは、チェーン内の各プロパティを手動で走査する必要があり、特に深くネストされたプロパティの場合、退屈でエラーが発生しやすくなります。
再帰プロパティ割り当て関数
この課題に対処するために、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; }
この関数は、オブジェクト (obj)、文字列としてのプロパティ名 (prop)、およびプロパティに割り当てる値 (value) を受け取ります。オブジェクト階層を再帰的に走査し、適切なプロパティを指定された値に設定します。
使用法
assign を使用して obj.foo.bar.foobar の値を設定するにはfunction:
var obj = {}, propName = "foo.bar.foobar"; assign(obj, propName, "Value");
このコードは、必要なネストされたプロパティを作成し、次の値を設定します。 obj.foo.bar.foobar を "Value" に変更します。
再帰的なプロパティ割り当て関数を利用すると、文字列名を使用して JavaScript でネストされたオブジェクトのプロパティに動的にアクセスして変更でき、複雑なデータ構造に対して柔軟でスケーラブルなソリューションを提供できます。 .
以上が文字列名を使用してネストされた JavaScript オブジェクトのプロパティを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。