2013-11-01 67 views
1

我是javascript新手。
我想要一個具有這種結構的對象。在javascript中定義對象

Users = { 
    User1 : { 
     "name" : "name", 
     "id" : "123" 
    } 
    User2 : { 
     "name" : "name", 
     "id" : "123" 
    } 
} 

所以我應該定義用戶是這樣的:

var Users = {}; 

我怎樣才能添加新用戶到Users?和我怎樣才能裏面Users對象的讀寫用戶是這樣的:

// reading 
User1_name = Users.User1.name; 

// writing 
Users.User1.name = "new name"; 
+3

有什麼問題嗎?你的代碼目前似乎沒問題。 – Sirko

+0

這不是代碼,我想要代碼 –

+0

這是非常有效的代碼。正如前面提到的,一個逗號缺失。 – Sirko

回答

2

可以定義用戶這樣的,你只是缺少一個逗號

Users = { 
    User1 : { 
     "name" : "name", 
     "id" : "123" 
    } <-- 
    User2 : { 
     "name" : "name", 
     "id" : "123" 
    } 
} 

應(使用var增加了清晰度)

var Users = { 
    User1 : { 
     "name" : "name", 
     "id" : "123" 
    }, 
    User2 : { 
     "name" : "name", 
     "id" : "123" 
    } 
} 

閱讀和寫作可以按照您描述的方式完成。

要添加新的用戶,你可以做這樣的事情

Users["User3"] = { 
    "name" : "name3", 
    "id" : "1234" 
} 
+0

User3來自php,所以它可以是任何東西。是否有效的是'var username ='somename''And'Users.username = {'name':'name','id':'123'}'? –

+3

'Users [username] = {'name':'name','id':'123'}' –

+0

稍微修改了一下問題, – Philipp

3

你的代碼是正確的(除了缺少逗號@Philipp指出),但你可以使用數組太:

var users = [ 
    { 
     "name" : "name", 
     "id" : "123" 
    }, 
    { 
     "name" : "name", 
     "id" : "123" 
    } 
]; 

var userName = users[0].name; 

users[0].name = "new name"; 
+0

+1這是一種以易於枚舉的方式處理*用戶*的更好方法。 –

相關問題