JavaScript では、文字列表現のみを使用してオブジェクトの深くネストされたプロパティを設定する必要があるシナリオが発生します。例:
var obj = {}; var propName = "foo.bar.foobar";
プロパティ obj.foo.bar.foobar を「hello world」に設定するには、次の関数を利用できます。
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; }
この関数は、ネストされたプロパティ構造により、途中で不足しているオブジェクトが作成されます。最後に、最終値を目的のプロパティに割り当てます。
使用法:
assign(obj, propName, "hello world");
この割り当てを実行すると、obj.foo.bar.foobar が "hello world" に設定されます。 .
以上が文字列プロパティ名を使用して深くネストされた JavaScript オブジェクトに値を割り当てる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。