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

如何从对象数组中按poly.ID匹配对应Name值并渲染到Popup组件

问题原因

  • 原有代码的map方法仅返回布尔类型的匹配结果,没有返回需要渲染的Name字段值
  • 匹配逻辑错误:误将poly.ID与zone.Name做匹配,正确匹配逻辑应为poly.ID和zone.ID相等

最优实现方案

使用Array.find()方法匹配对应项,该方法会返回第一个符合匹配条件的数组项,更适配单条匹配的场景:

<Polygon positions={}>
  <Popup>
    {zones.find(zone => zone.ID === poly.ID)?.Name}
  </Popup>
</Polygon>

代码中的可选链?.用于处理无匹配项的场景,未找到对应数据时不会抛出报错,仅返回空值不渲染内容。

兼容方案(运行环境不支持可选链时使用)

可以先预存匹配结果再做判断,避免重复遍历数组提升性能:

// 组件逻辑部分提前获取匹配项
const matchedZone = zones.find(zone => zone.ID === poly.ID);

// 渲染部分
<Polygon positions={}>
  <Popup>
    {matchedZone ? matchedZone.Name : ''}
  </Popup>
</Polygon>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:12:00