【发布时间】:2019-06-25 12:11:12
【问题描述】:
我正在使用 javascript 对象,需要在对象结构的深处设置一个值。
让我们说:
a.b.c.d.e.f.g = "some value";
我不知道是否所有这些对象都已创建,所以我最终这样做了:
a = a || {};
a.b = a.b || {};
a.b.c = a.b.c || {};
a.b.c.d = a.b.c.d || {};
a.b.c.d.e = a.b.c.d.e || {};
a.b.c.d.e.f = a.b.c.d.e.f || {};
a.b.c.d.e.f.g = "some value";
肯定有更好的方法来做到这一点吗?
【问题讨论】:
-
你可以写一个函数,叫做
set(a, ["b", "c", "d", ...], "some value"); -
“我不知道是否所有这些对象都已创建”是什么意思?是需要创建数据结构还是遍历已有的数据结构?
-
这是一个设置树,其中 a 是设置的全局列表。在我的具体情况下,假设 a.b.c.d.x 已经设置,那么我需要创建 e 和 f 对象,并添加 g 属性而不搞砸它上面的任何东西。
-
现有对象数据结构是
{"a":{"b":{"c":{"d":{}}}}}吗?
标签: javascript function helper