【发布时间】:2014-03-14 11:22:16
【问题描述】:
我正在尝试修改一个简单的对象,结果令人费解。这是在 node.js 中执行的。
我有一个对象如下:
var element = {
ident: "value",
green:
{ date: value2,
key: value3,
key2: value4,
key3:
{ id1:
{ p1: [],
p2: [],
p3: [],
p4: [] },
{ id2:
{ p1: [],
p2: [],
p3: [],
p4: [] },
{ id3:
{ p1: [],
p2: [],
p3: [],
p4: [] } } },
red:
{ date: value5,
key: value6,
key2: value7,
key3:
{ id1:
{ p1: [],
p2: [],
p3: [],
p4: [] },
{ id2:
{ p1: [],
p2: [],
p3: [],
p4: [] },
{ id3:
{ p1: [],
p2: [],
p3: [],
p4: [] } } } };
当我尝试将单个“p2”的值设置为我填充了一些数据的数组时,会设置该颜色的每个“p2”,而不仅仅是引用的那个。我这样设置值:
元素[绿色].key3[id1][p2] = someArray;
括号中的所有内容都是指向键名的变量。上面的输出设置了 3 个值... Green 的所有 id - green.key3.id1.p2、.id2.p2 和 .id3.p2 都为我只想要的值 green.key3.id1.p2
关于这里可能发生的事情有什么想法吗?提前感谢您的帮助。
【问题讨论】:
-
这个问题肯定比你透露的更多。也许向我们展示更多关于您在哪里使用
element[green].key3[id1][p2] = someArray;的代码
标签: javascript arrays node.js object properties