You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Restcountries API查询使用美元的国家 代码无输出问题求助

问题排查
  • 首先是API返回数据结构理解错误:Restcountries返回的currencies字段结构为 currencies: { [货币代码]: { name: 货币全称, symbol: 符号 } },你的代码写的value.currencies.name.USD层级完全颠倒,正确的美元货币全称取值应为value.currencies?.USD?.name
  • 其次是拼写错误:美元全称正确拼写是United States Dollar,你的代码里写成了Unites States Dollar,少了字母t
  • 第三是过滤逻辑完全错误:不需要用for in循环遍历货币对象,只要判断当前国家的currencies下存在USD属性即可,你的遍历逻辑遍历的是USD对象的键(也就是name、symbol两个值),不可能匹配到货币全称
  • 第四是没有做可选链容错:部分国家没有currencies字段,直接访问会触发报错导致整个筛选中断
  • 第五是取国家名的逻辑错误:value.name是包含官方名、通用名的对象,直接打印会输出对象而非可读的国家名,需要取value.name.common获取通用国家名
修复后的代码
const getUSDollar = () => {
  const xhr = new XMLHttpRequest();
  xhr.open("GET", "https://restcountries.com/v3.1/all", true);

  xhr.responseType = "json";

  xhr.onload = () => {
    const data = xhr.response;
    const datas = data
      .filter((value) => {
        // 判断是否存在美元货币且名称匹配
        return value.currencies?.USD?.name === "United States Dollar";
      })
      .map((value) => value.name.common);
    console.log(datas);
  };
  // 新增错误捕获,方便排查请求问题
  xhr.onerror = () => {
    console.log('接口请求失败')
  }
  xhr.send();
};

getUSDollar();

内容的提问来源于stack exchange,提问作者Mohammed Ajaas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:24:04