【发布时间】:2020-02-22 12:31:32
【问题描述】:
var tags = {
112 :[
{ "tag":"Shyam", picx: 700, picy: 300 },
{ "tag":"Bob", picx: 340, picy: 120 },
{ "tag":"Jai", picx: 500, picy: 240 }
],
114 :[
{ "tag":"pen", picx: 300, picy: 100 },
{ "tag":"cd", picx: 440, picy: 220 },
{ "tag":"paper", picx: 600, picy: 440 }
] };
这是我拥有的对象数组,我喜欢将以下内容添加到变量标签中
115 :[
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },
{ "tag":"dave", picx: 620, picy: 430 }
]
我试过了
tags.push( {
115 :[
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },
{ "tag":"dave", picx: 620, picy: 430 }
] } );
但没用
【问题讨论】:
-
tags是一个对象而不是数组,但push()是一个数组方法。分配为新属性tags[115] = [....] -
我也试过了,112 和 114 有三个对象,但如果我尝试你的解决方案,我只能添加一个,我想更动态地添加
tags[115] = [ { "tag":"box", picx: 550, picy: 180 } ] ;但如果我再做一次,只有最后一个对象在那里。 -
所以当属性存在并且是数组时,你会这样做
tags[115].push({...}) -
tags[115].push({...}) 不起作用,执行在该行停止。
-
可能是因为您没有检查该属性是否存在。似乎您在询问两种不同的条件....当属性不存在时如何添加以及当属性不存在时如何添加。你想要数组中的这些对象的来源是什么?