首页 >web前端 >js教程 >如何使用字符串名称动态设置嵌套 JavaScript 对象属性?

如何使用字符串名称动态设置嵌套 JavaScript 对象属性?

DDD
DDD原创
2024-12-05 03:00:11877浏览

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");

此函数允许您动态地将属性 obj.foo.bar.foobar 设置为所需的值,即使属性名称仅作为字符串。

以上是如何使用字符串名称动态设置嵌套 JavaScript 对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn