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

国家名称无法正常显示,为何出现[object Object]?附代码示例

问题原因及解决办法

原因

你看到的[object Object]是因为Rest Countries API返回的country.name并非字符串,而是一个包含多个字段的对象(比如common是通用名称,official是官方名称)。当你直接在模板字符串中插入对象时,JavaScript会自动调用对象的toString()方法,默认返回[object Object]。

解决办法

你需要从name对象中提取具体的名称字段,比如通用名称common:

修改代码中的这一行:

output += `<option>${country.name}</option>`;

改为:

output += `<option>${country.name.common}</option>`;

如果需要显示官方名称,就替换为country.name.official。

修改后的完整代码:

document.addEventListener('DOMContentLoaded', () =>{

  const selectDrop = document.querySelector('#countries');
 
  
  fetch('https://restcountries.com/v3.1/all').then(res => {
    return res.json();
  }).then(data => {
      let output = "";
    data.forEach(country => {
      output += `<option>${country.name.common}</option>`;
    })
    selectDrop.innerHTML = output;
  }).catch(err => {
    console.log(err);
  })
  
  });

这样下拉框就能正常显示国家名称了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:20:53