2011-07-20 117 views
3

我知道一个命名对象添加到现有的JavaScript对象你这样做:匿名对象添加到对象

var json = {}; 
json.a = {name:"a"}; 

但你怎么能以类似的方式对象添加到现有的JavaScript对象不分配它是一个关联名称,因此可以通过for()语句访问它。对不起,如果我有点模糊,我不了解JavaScript对象。

UPDATE:
我想最终的结果看起来是这样:

var json = [{name:'a'}{name:'b'}]; 
+0

您是否在寻找['$ .extend()'](http://api.jquery.com/jQuery.extend/)? –

+0

不,我想添加的对象是单独的对象 – nkcmr

+1

你为什么想要做这样的事情? – Pointy

回答

2

尝试,你推一个项目上使用

myArrayVar.push(value); 

myArrayVar[myArrayVar.length] = value; 
0

这是没有意义的有一个对象的属性,而不使用属性名称。毕竟,“for ... in”循环是对该属性名称集合的循环。也就是说,

for (var k in obj) 

将设置“K”依次等于每个属性的名称在“OBJ”。

4

你有什么不严格的JSON对象。你正在使用JS对象文字。

你可以这样做:

var jsObj = {}; 

// add a 'name' property 
jsObj = { name: 'a'}; 

var anotherObj = { other: "b" }; 

// will add 'other' proprty to jsObj 
$.extend(jsObj, anotherObj); 
// jsObj becomes - {name: 'a', other:'b'} 

的上述JSON表示将看起来像:

var jsonString = "{'name': 'a', 'other':'b'}"; 

// will give you back jsObj. 
var jsonObj = JSON.Parse(jsonString); // eval(jsonString) in older browsers 

请注意,你不能有属性,而不使用名称。这是无效的:

// invalid, will throw error 
jsObj = { : 'a'}; 
0

您不能这样做,因为JSON对象是字符串值对的集合。一个值可以是一个数组,你可以将你的对象推入该数组中,而不需要关联名称。

http://www.json.org/

0

你所描述的对象的数组的数组。

var j = [{name:'a'},{name:'b'}]; 

这有您正在寻找的属性。你可以像这样操作就可以了:

for(var i in j) { 
    alert(j[i].name); 
} 
+0

不要使用'for ... in'迭代数组。改用普通的'for'循环。 –