Underscore JavaScript:用于嵌套数组属性的_.each循环。

4

嗨,Javascript/underscore 高手们...

假设我从服务器接收到一个 JSON 对象,其中有一个匿名数组作为其属性之一... 我该如何在 underscore 的 _.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。


移除外部的 {} 应该会使它成为有效的 JSON。 - Joseph
至少,内部对象应该是{name:'Joe'},{name:'bloggs'}。这就使它成为无效对象并抛出JS错误。 - Dennis Rongo
2个回答

14

你从服务器接收到的JSON格式不正确。这个数组需要一个属性名,例如:

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

那么你可以这样做:

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

2

对象内部的匿名数组不是有效的 JSON,因此您将无法解析它。

要么为该数组命名,要么删除外部对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接