在 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");
此函数允许您动态地将属性 obj.foo.bar.foobar 设置为所需的值,即使属性名称仅作为字符串。
以上是如何使用字符串名称动态设置嵌套 JavaScript 对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!