TypeError:res.forEach is not a function报错解决办法
出现报错:

首先注意forEach中的“E”要大写。
报错有2种可能原因:
- 原因是使用foreach()方法用过遍历的应该是数组才对,所以使用Array.from()方法将遍历对象转化为数组
- 原因是遍历的对象不对,可能对象中有好几层data,需要console.log( res );看看
原因一:
错误代码:
res.forEach(v=>{
leftArr.push({
id:v.id,
name:v.name
})
})解决办法:加一行代码 res = Array.from(res);
正确代码:
res = Array.from(res);
res.forEach(v=>{
leftArr.push({
id:v.id,
name:v.name
})
})原因二:
以此项目为例,执行了console.log( res );后可以看到(下图)res其实是一个对象,里面包含了3层data,我要拿到的是第三层data中的数据,而前面说过forEach遍历的应该是数组才对,这里的res是一个对象所以会报错。

解决办法:
在此例中要解决报错且正确拿到数据,就要取到第三层data,此时才是数组。即把
res.forEach()改为res.data.data.forEach() ,就可以了。(具体加几个data要看自己res的对象里有几层data,比如有2层的话,那么取到第二层data就只需要res.data.forEach() 就可以了)
错误代码:
res.forEach(v=>{
leftArr.push({
id:v.id,
name:v.name
})
})正确代码:
res.data.data.forEach(v=>{
leftArr.push({
id:v.id,
name:v.name
})
})总结
到此这篇关于TypeError:res.forEach is not a function报错解决的文章就介绍到这了,更多相关TypeError:res.forEach is not a function内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vant的Loading加载动画组件的使用(通过接口拿数据时显示加载状态)
这篇文章主要介绍了vant的Loading加载动画组件的使用,通过接口拿数据时显示加载状态,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2024-01-01
vue+canvas如何实现根据数据展示不同高度,不同渐变颜色的长方体效果
这篇文章主要介绍了vue+canvas如何实现根据数据展示不同高度,不同渐变颜色的长方体效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-09-09
Vue路由对象属性 .meta $route.matched详解
今天小编就为大家分享一篇Vue路由对象属性 .meta $route.matched详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-11-11


最新评论