2014-04-26 86 views
-1

说我有这样的:推送assoc命令对象到数组

var user = [{'id':1,'gender':'male'},{'id':2,'gender':'female'}] 

我想用推()来插入

'owner':true 

到第一阵列,使其变成这个样子

var user = [{'id':1,'gender':'male','owner':true},{'id':2,'gender':'female'}] 

我试图

user[0].push({'owner':true}); 

但它不起作用。

+0

那么这有什么问题?你尝试过吗? –

+3

user [0] .owner = true。你在找什么? – attila

+0

@attila我想通过使用push() – user3522444

回答

1

您不是将对象推入数组,而是将对象推入对象。
你可以通过使用jquery的extend方法来做到这一点。

var object = $.extend({}, object1, object2); 
+2

如果不需要,你不应该使用jquery – Dnaso

+0

取决于你想住在什么时候,似乎是你的意见。 – Trace

+0

Kim,pure js pls – user3522444

1

@Kim Gysen给了你一个可行的解决方案。我认为你已经弄清了Arrays和Objects之间的逻辑混淆了,我只是想给你一个只使用JavaScript的解决方案,它可以帮助你理解这里发生的事情。使用像jQuery这样的库是一种节省时间的好方法,但对于您来说,我认为这会对理解有更全面的理解。

user[0]['owner'] = true; 

在上述你被第0索引,其在这种情况下是“的‘id’:1”访问自己的数组的代码,并使用括号标记添加新的属性给它。另一种方式做,这将使用点符号:

user[0].owner = true; 

考虑增加一个属性设置为一个对象的过程:

var myObj = {}; 
myObj['newKey'] = "I'm a new value"; 
myObj['newKey2'] = "I'm an even newer value!"; 

我给你的原因的答案是,它可能看起来方便使用jQuery,但理解JavaScript原则和语法将从长远来看帮助你。一些好的资源给你我建议是CodeSchoolCodeAcademy