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

调用TheCocktailDB接口用forEach遍历返回值报not a function错误求助

报错原因与修复方案

核心错误原因

  • forEach是仅数组可用的遍历方法,TheCocktailDB接口返回的根级data是普通包装对象,不包含该方法,因此触发类型错误。
  • 接口返回的标准结构为:所有鸡尾酒列表数据存储在根对象的drinks属性对应的数组中,直接遍历根对象自然不支持数组方法。

修正后代码

const url = 'https://thecocktaildb.com/api/json/v1/1/search.php?s=d'
const output = document.querySelector('.cocktailbody')
 
const drinks = fetch(url)
 .then(res => res.json())
  .then(data => {
     console.log(data)
     // 遍历drinks属性对应的数组即可
     data.drinks.forEach(function(item) {
        console.log(item)
      })
  })

优化建议

  • 无匹配搜索结果时,接口返回的drinks字段值为null,建议增加非空判断避免二次报错,可以改为可选链写法data.drinks?.forEach(...),或者先执行if(Array.isArray(data.drinks))判断再执行遍历逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:30:00