【问题标题】:underscore javascript _.each loop for properties nested array下划线 javascript _.each 循环用于属性嵌套数组
【发布时间】:2013-01-17 03:53:02
【问题描述】:

你好 Javascript/下划线大师..

假设我从服务器接收到一个 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 嵌套数组中的元素...如果匿名传入,不确定如何访问该数组以进行循环...

谢谢, 哈米什。

【问题讨论】:

  • 删除外部{} 应该使它成为有效的JSON。
  • 内部对象至少应该是 {name: 'Joe'},{name: 'bloggs'}。仅此一项就使其成为无效对象并引发 JS 错误。

标签: javascript json underscore.js


【解决方案1】:

您从服务器接收的 JSON 是无效的 JSON。数组需要一个属性名,例如:

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

那么你可以这样做:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 1970-01-01
      • 2019-05-24
      • 2022-07-06
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多