2012-04-12 161 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' } } 
相關問題