【问题标题】:For Loop To Get One Variable From Each Nested ArrayFor循环从每个嵌套数组中获取一个变量
【发布时间】:2018-02-19 16:10:56
【问题描述】:

我正在尝试通过一些 Json 并从每个嵌套数组中获取“city_name”值并将其打印在列表中。问题:如何遍历一个数组并从每个数组中获取第一个元素?

“state”: [
    {
      “city_name”: “Denver”,
      “timezone”: “MST”,
    },
    {
      “city_name”: “Austin”,
      “timezone”: “CST”,
    }
{
      “city_name”: “Atlanta”,
      “timezone”: “EST”,
    }
  ],

我尝试过的Javascript:

fetch(‘URL’).then(function(response) { 
        return response.json();
    }).then(function(data) {
        console.log(data);
        for (x in data.state) {
        document.getElementById("cities").innerHTML += data.state.city_name + "<br>";
    }    
    });

回应: 不明确的 不明确的 未定义

这是获取数组中值的正确方法吗?为什么它说未定义? *这只是帮助解释我的问题的示例数据

【问题讨论】:

  • const cityList = data.State.map(element =&gt; element.city_name);
  • 因为您没有名为"state" 的属性。它是"State",它是一个数组,所以你应该使用for ... of 而不是for ... in
  • Pavlo:我尝试了 const cityList = data.State.map(element => element.city_name);但这只是重复了丹佛 3 次。我将它放在 For 循环内部和外部。
  • Derek:首都州是我样本中的错字,我已经更正了。我尝试将其更改为 For "of" 但仍然导致 "undefined"

标签: javascript arrays loops for-loop nested


【解决方案1】:
fetch(‘URL’).then(function(response) { 
  return response.json();
}).then(function(data) {
  let cities = data.state.map(e => e.city_name);
  document.getElementById("cities").innerHTML += cities.join('<br/>');
});

假设 data 是一个包含属性 state 的对象,这应该可以工作

【讨论】:

    猜你喜欢
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多