最近在项目中遇到 Uncaught (in promise) TypeError: list is not iterable 报错,虽然不影响代码运行,但是看着报错感觉有点难受,试试能不能解决它
看了很多篇文章,都是说使用 Object.keys() 可以解决问题
formatTree2(list) {
for (const item of Object.keys(list)) {
if (list[item].children && list[item].children.length === 0) {
delete list[item].children
} else {
this.formatTree2(list[item].children)
}
}
},
就先使用 Object.keys() 看看,代码运行之后
因为 Object.keys() 传入的是 null 和 undefined 时就会出现这种问题,如何解决呢,试试加条件判断
formatTree2(list) {
if (list) {
for (const item of Object.keys(list)) {
if (list[item].children && list[item].children.length === 0) {
delete list[item].children
} else {
this.formatTree2(list[item].children)
}
}
}
},
添加条件判断之后,确实能够解决,代码正常运行,也不报错了,很好
仔细琢磨一下,感觉加条件判断的话是不是可以不使用 Object.keys() 呢,值得一试
formatTree2(list) {
if (list) {
for (const item of list) {
if (item.children && item.children.length === 0) {
delete item.children
} else {
this.formatTree2(item.children)
}
}
}
},
代码运行之后,功能正常也不报错,确实是可以的
总结一下:文章来源:https://www.toymoban.com/news/detail-514373.html
使不使用 Object.keys() 其实都可以,主要的关键点在于添加条件使得 list 在不为null或undefined时执行代码,如果为了保险起见可以添加 Object.kes() ,看项目需求吧文章来源地址https://www.toymoban.com/news/detail-514373.html
到了这里,关于解决 Uncaught (in promise) TypeError: list is not iterable 报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!