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

如何从国家API中获取面积前十国家的对应名称?

解决方法

你当前的问题在于把国家的面积、名称拆分成了独立数组,当对面积数组排序后,原有的索引对应关系就被破坏了,没法再准确匹配到对应的国家名称。

正确的做法是直接对完整的国家对象数组进行处理,这样就能始终保留面积与国家名称的关联:

  1. 先过滤掉没有有效面积数据的国家(避免排序时出现异常);
  2. 对国家数组按面积从大到小排序;
  3. 截取前10个国家后,直接从对象中提取名称即可。

修改后的代码如下:

const countriesAPI = 'https://restcountries.com/v2/all'
const fetchData = async () => {
    try {
        const response = await fetch(countriesAPI)
        const countries = await response.json()
        // 过滤存在有效面积的国家
        const validCountries = countries.filter(country => country.area && country.area > 0)
        // 按面积降序排序,复制数组防止修改原数据
        const sortedCountries = [...validCountries].sort((a, b) => b.area - a.area)
        // 获取面积最大的10个国家
        const top10Largest = sortedCountries.slice(0, 10)
        // 提取名称和对应的面积(也可以直接使用top10Largest里的完整对象)
        const top10CountryNames = top10Largest.map(country => `${country.name} (面积: ${country.area} 平方公里)`)
        console.log('面积最大的10个国家:', top10CountryNames)
    } catch (err) {
        console.error(err)
    }
}
fetchData()

这样处理后,你不仅能拿到对应的国家名称,还能随时获取该国家的其他信息(比如语言、首都等),因为每个元素都是完整的国家对象,关联关系不会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:52:55