2010-11-01 80 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" 
     } 
}