2010-11-01 99 views
32

我有一個Javascript對象,看起來像這樣。動態添加到Javascript對象

ips[ipID] = {}

所以我結束了一堆需要存儲的樣子

ipID { name : 'val', anotherName : 'anotherVal' }

我的問題是信息的IPS,如何動態地添加這些名稱和值?

+2

我想你可能會混淆JSON與JavaScript。 – mikerobi 2010-11-01 17:13:35

+0

JSON是javascript。我只是想知道如何動態地將值添加到我的對象。 – Mike 2010-11-01 17:15:23

+6

JSON不是Javascript,JSON是一種數據格式。上述示例會在任何標準兼容的JSON解析器中觸發錯誤。 – mikerobi 2010-11-01 17:22:39

回答

27
var ipID = {}; 
ipID.name = 'val'; 
ipID.anotherName = 'anotherVal'; 
+1

好的。我想我應該提到我的名字和價值都是動態的。所以我使用tmp [name] = value;然後我需要添加tmp。 – Mike 2010-11-01 17:21:16

5

如果你想用偉大的下劃線庫(瑞士軍刀爲JS開發人員),你可以使用擴展方法http://documentcloud.github.com/underscore/#extend

因此,例如

var tmp = { name: "asdf", val: "value" }; 
_(ips[ipID]).extend(tmp); 

希望這是明確的,它會更容易幫助,如果你有一個更準確的問題。

48

我相信這是做,如果你的名字是動態的,最簡單的辦法:

var myobj = {}; 
var newFieldName = 'my new field name'; 
var newFieldValue = 'my new field value'; 
myobj[newFieldName] = newFieldValue; 
0

解決方案對於JSON對象:

默認:

array=[]; 
object={}; 

JSON代碼:

var People= {}; 

Json.People[key]="value"; 

JSON結果:

{People: 
     { 
     key: "value" 
     } 
}