gpt4 book ai didi

javascript - js在属性赋值中构建对象路径

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:28 25 4
gpt4 key购买 nike

有没有一种方法可以在构造后自动在赋值中创建子对象,即

var obj = {};
obj.a.b.c=13;

上面给了我一个“obj.a is undefined”错误

我写了一个函数来做这个,但想知道是否有更简单的方法

_setObjectProperty(obj,13,['a','b','c']);
function _setObjectProperty(obj,value,loc)
{
if(loc.length>1) {
obj[loc[0]] = obj[loc[0]] || {};
_setObjectProperty(obj[loc[0]],value,loc.splice(1));
}
else if(loc.length===1) {
obj[loc[0]]=value;
}
}

最佳答案

不,在 JavaScript 中没有内置的方法来执行此操作。唯一的方法是像您一样创建自己的函数。如果你想要点运算符/符号的便利,你可以使用以下函数:

var set = function(path, value, root) {
var segments = path.split('.'),
cursor = root || window,
segment,
i;

for (i = 0; i < segments.length - 1; ++i) {
segment = segments[i];
cursor = cursor[segment] = cursor[segment] || {};
}

return cursor[segments[i]] = value;
};

set("a.b.c", 2);

console.log(a.b.c) // => 2

关于javascript - js在属性赋值中构建对象路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com