【问题标题】:Looping through object循环遍历对象
【发布时间】:2020-06-09 20:12:39
【问题描述】:

我正在使用 swapi co API 进行练习,在我从网站获取结果后,我只想显示一些 API 对象。目前我正在努力展示所有阵列飞船。

var linkApi="https://swapi.co/api/starships"
async function starships() 
{
  let response = await fetch(linkApi);
  let data = await response.json()

 for(i=0; i<data.results.length;i++){
  return{

    "count": data.count,
    "results":[
        {
            "name":data.results[i].name,
            "model": data.results[i].model,
            "crew":data.results[i].crew,
        }
    ]

  }
}
  }


starships()
  .then(data => console.log(data));


这是我想要达到的格式

 {
  "count": "",
  "results": [
    {
      "name": "",
      "model": "",
      "crew": "",
      "passengers": "",
      "films_count": "",
      "films": [
        {
          "title": "",
          "director": "",
          "release_date": ""
        }
      ]
    }
  ]
}

【问题讨论】:

  • 所以你想要一艘星际飞船的导演和发布日期? ;) :D 请把预期结果与实际数据联系起来
  • 基本上,我想以呈现的 JSON 格式获取 API 的所有数据,但目前我正在努力循环遍历对象数组。

标签: javascript json oop object


【解决方案1】:

返回将完成您的函数,只返回第一个宇宙飞船信息。您应该在 for 循环之外创建一个对象,并在 for 结束后将一个数组传递给它,其中包含您想要的格式的所有宇宙飞船

var linkApi="https://swapi.co/api/starships"
async function starships() 
{
    let response = await fetch(linkApi);
    let data = await response.json()
    let spaceshipsArray = [];
    let result = {
        "count": data.length
    };
    for(i=0; i < data.results.length;i++){

            spaceshipsArray.push({
            "name":data.results[i].name,
            "model": data.results[i].model,
            "crew":data.results[i].crew,
            });

    }
    }
    result.results = spaceshipsArray;
    return result;
  }

应该是这样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-30
    • 2017-06-12
    • 2015-10-31
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多