【问题标题】:Looping through an Object containing an Array of Objects in JS在 JS 中循环遍历包含对象数组的对象
【发布时间】:2017-03-06 11:58:51
【问题描述】:

我有一个 ajax 请求,它加载一个 JSON 文件并通过存储对对象的引用来解析它。 我正在尝试找到一种可以循环遍历对象的方法,但由于它的结构,我在控制台上出现错误。

这是我正在解析的 JSON 示例:

{
  "markers": {
    "marker": [
      {
        "name": "john",
        "latitude": "53.4682282",
        "longitude": "-2.238547"
      },
      {
        "name": "david",
        "latitude": "53.4663409",
        "longitude": "-2.2328164"
      },
      {
        "name": "mathew",
        "latitude": "53.4668135",
        "longitude": "-2.2310998"
      }
    ]
  }
}

我尝试了以下 js 循环,但似乎无法使其正常工作。 (注意,通过解析 JSON 检索到的对象被引用为 markers

markers.forEach(function(marker) {
  console.log(marker.name);
});

【问题讨论】:

    标签: javascript arrays json loops object


    【解决方案1】:

    markers 是一个包含数组marker 的对象。你需要迭代marker

    var obj = {
      "markers": {
        "marker": [{
            "name": "john",
            "latitude": "53.4682282",
            "longitude": "-2.238547"
          },
          {
            "name": "david",
            "latitude": "53.4663409",
            "longitude": "-2.2328164"
          },
          {
            "name": "mathew",
            "latitude": "53.4668135",
            "longitude": "-2.2310998"
          }
        ]
      }
    }
    
    obj.markers.marker.forEach(m => console.log(m.name));

    【讨论】:

    • 谢谢,这帮助我解决了问题。我现在就发布正确答案
    【解决方案2】:

    试试这个:

    markers.marker.forEach(function(marker) {
      console.log(marker.name);
    });
    

    【讨论】:

    • 我有,我的控制台给了我TypeError: markers.marker is undefined
    • 因为你应该首先把你的对象和属性“标记”从它推到名为“标记”的变量中。
    【解决方案3】:

    我需要访问对象内部的对象。即,

    markers.markers.marker.forEach(function(marker) {
        console.log(marker.name);
    });
    

    【讨论】:

    • 我已经发布了完全解决您问题的答案。您不必自己发布答案。你可以简单地接受我的
    【解决方案4】:

    试试这个:

    'markers.marker.map((ma) => { 控制台.log(ma.name); });`

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2010-12-07
      • 2019-08-08
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多