2013-01-17 34 views
4

的Javascript高/下劃線大師..下劃線的JavaScript _.each環路特性嵌套陣列

可以說,我收到一個JSON對象從具有嵌套作爲它的一個屬性的匿名數組服務器...怎麼會我通過下劃線_.each方法遍歷該數組?

這是我的JSON對象:

"onlineUsers": [ 
    { 
     "Id": "users/2", 
     "Name": "Hamish", 
     "LatestActivity": "2013-01-17T04:02:14.2113433Z", 
     "LatestHeartbeat": "2013-01-17T04:02:14.2113433Z" 
    }, 
    { 
     "Id": "users/3", 
     "Name": "Ken", 
     "LatestActivity": "2013-01-17T03:45:20.066Z", 
     "LatestHeartbeat": "2013-01-17T04:04:34.711Z" 
    } 
    ] 

我怎麼會修改該函數打印出來的名字呢?

_.each(onlineUsers, function(user){log(user.name);}); 

這是打印出嵌套對象的實際徵收,顯然是因爲他們是onlineUsers的嵌套數組中的元素...不知道怎麼去說數組循環,如果它是在匿名傳遞.. 。

謝謝, Hamish。

+0

除去外'{}'應該使它有效的JSON。 – Joseph

+0

至少,內部對象應該是{name:'Joe'},{name:'bloggs'}。僅憑這一點,它就成爲一個無效的對象,並引發JS錯誤。 –

回答

14

您從服務器收到的JSON是無效的JSON。該陣列需要的屬性名稱,例如:

onlineUsers = { names: [{name : "Joe"}, {name : "bloggs"}]} 

然後,你可以這樣做:

_.each(onlineUsers.names, function(user){log(user.name);}); 
2

對象內部的匿名數組是無效的json,所以你將無法解析它。

給數組一個名字或者刪除外部對象。