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

JavaScript如何筛选与数组全部字符串匹配的对应国家对象

错误原因

  • 方法选择错误:Array.find() 仅返回第一个匹配的元素,无法筛选出全部符合条件的对象,需要替换为支持返回所有匹配结果的Array.filter()。
  • 匹配逻辑错误:不应该直接将数组flatArr和v.country做等值判断,你需要匹配的是国家编码code字段,正确逻辑是判断当前项的code是否存在于flatArr中。
  • 缺少字段提取步骤:筛选得到匹配的对象数组后,需要通过Array.map()提取每个对象的country属性,才能得到最终的国家名称数组。

正确代码

const flatArr = ["USA", "FRA", "GBR"]
const result = COUNTRY_CODES
  .filter(item => flatArr.includes(item.code))
  .map(item => item.country)

上述代码运行后得到的result就是你期望的["United States of America", "France"],因为你给出的示例COUNTRY_CODES中没有GBR对应的国家项,所以不会出现在结果里。

可选优化(大数据量场景)

如果COUNTRY_CODES条目很多,可以先把flatArr转为Set降低查找的时间复杂度:

const flatArr = ["USA", "FRA", "GBR"]
const codeSet = new Set(flatArr)
const result = COUNTRY_CODES
  .filter(item => codeSet.has(item.code))
  .map(item => item.country)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:09