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

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

DDD
发布: 2024-12-05 03:00:11
原创
866 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板