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

调用Shazam API遍历数据时遇data.map is not a function错误求助

解决"data.map is not a function"错误的常见原因

针对你用Shazam API时遇到的问题——即便console.log(data)显示是数组,仍出现该错误,大概率是以下几种情况:

  • 变量被意外重写:检查console.log(data)和调用map的代码之间,有没有其他地方修改了data变量。比如后续代码把data赋值成了对象、null或者字符串,导致调用map时它已经不是数组了。
  • 异步时序错误:如果API请求是异步的,你可能在数据还没返回就执行了map。比如console.log(data)是在请求回调里打印的,但map写在了回调外面,这时候初始的data可能是undefined或者默认的非数组值,自然触发错误。
  • 数据结构嵌套没处理对:你看到的20个tracks数组,可能是嵌套在data的某个属性里。比如API实际返回的是{ tracks: [...] },你把整个响应对象当成了data,直接调用data.map肯定报错,得用data.tracks.map才行。再仔细看看console.log(data)的输出结构,确认要遍历的数组是不是data本身。
  • 隐式类型转换导致数组变非数组:某些操作可能悄悄把数组转成了其他类型,比如错误的解构、Object.assign使用不当,或者不小心把data和其他非数组变量合并了。可以在调用map前加个校验:if (Array.isArray(data)) { data.map(...) },同时打印typeof data和Array.isArray(data)的结果,确认当前data的类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:01:07