2011-07-20 120 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'循環。 –