2012-04-12 65 views
5

假设我有几个JavaScript对象我怎样才能JavaScript对象添加到另一个对象动态

{"type":"gotopage","target":"undefined"} 
{"type":"press","target":"a"} 
{"type":"rotate","target":"long"} 

我如何添加这个对象像

config={} 

我知道如何在每另一个对象插入的对象有一个ID我可以添加为:

config["id"]={} 

但在这种情况下,我该如何添加没有ID的对象?

回答

6

我想你是在混合对象和数组。对象具有命名键,数组具有数字键。您可以轻松地追加到使用.push()数组:

var arr = []; 
arr.push("something"); 

然而,对于一个配置对象作为变量顾名思义这是不是真的有用。你还是使用有意义的名称为您的选择,例如:

var config = { 
    something: 'blah', 
    foo: 'bar' 
}; 

您还可以存储在你的对象数组:

config.manyStuff = []; 
for(...) { 
    manyStuff.push(...); 
} 
1

如果这些数据必须是同一类型,然后使用,而不是一个数组:

var some_data = {"type":"gotopage","target":"undefined"} 

var config = []; 
var config.push(some_data); //and do this for the rest 

,您可以访问的配置项目是这样的:

var someVariable = config[index]; //where index is a number starting from 0 
10
var obj1 = {"type":"gotopage","target":"undefined"}; 

var config = {}; 
config.obj1 = obj1; 

可以随后添加它们。

var obj1 = {"type":"gotopage","target":"undefined"}; 

var config = {}; 
config.obj1 = obj1; 

var obj2 = {"key":"data"}; 
config.obj2 = obj2; 
+1

,但我却不知道有多少OBJ我有,我不能预先定义它们 – hh54188 2012-04-12 06:11:40

0

如果您正在寻找在初始化时增加他们来说,这可能会帮助你出:

var config = [ 
       {"type":"gotopage","target":"undefined"}, 
       {"type":"press","target":"a"}, 
       {"type":"rotate","target":"long"} 
       ] 
0

我使用这个效用函数:

module.exports.combine = function() { 

    var rv = {}; 
    for (i = 0; i < arguments.length; i++) { 
    for (thing in arguments[i]) { 
     rv[thing]=arguments[i][thing]; 
    } 
    } 
    return rv; 
} 

属性具有相同的名称将被性质随后的参数

覆盖
var util = require('lib/util.js'); 
console.log(util.combine(
    {"1":"one","two":function(){;}, 
    {"four":{"four.5":"four.5-b"}, "5":"foo"}}); 

结果:

{ '1': 'one', 
    '5': 'foo', 
    two: [Function], 
    four: { 'four.5': 'four.5-b' } } 
相关问题