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

如何将CoinMarketCap返回对象转数组并保留外层id,解决搜索logo不匹配问题

实现代码

1. 对象转数组(满足你要求的转换规则)

按照你给出的结构转换要求,可直接用以下代码实现,完全保留原对象外层的id键:

const fromThis = {
  1: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
  },
  825: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
  }
}

// 转换逻辑
const toThis = [Object.fromEntries(Object.entries(fromThis))]

转换后完全匹配你给出的toThis结构要求。


2. 更高效的logo匹配方案(建议优先使用)

你遇到的过滤后logo匹配错位问题,本质是用索引关联两个数据集导致的,不用转换结构也能彻底解决,且性能更高:

// 给第一个接口返回的币种数组统一补充logo字段
const processedCoinList = bitcoinD.data.map(coin => {
  // 直接用币种id作为key从第二个接口的返回对象中取值,不受过滤、排序操作影响
  const extraInfo = bitcoinI.data?.[coin.id]
  return {
    ...coin,
    logo: extraInfo?.logo || '/default-logo.png' // 可替换为你自己的默认占位图路径
  }
})

处理后的processedCoinList每个币种条目自带logo属性,后续不管是做搜索过滤还是排序操作,都不会再出现数据不匹配的问题。


注意事项

CoinMarketCap的/cryptocurrency/info接口返回的对象不会出现你示例中重复id的条目,上述代码完全适配官方接口的返回结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:03