循环必须注意事项;

简介: 循环必须注意事项;

今天在工作中遇见一个场景:


父组件向子组件中传递数据的时候,在子组件中父组件传递过来的数据进行循环的时候;


子组件报错


TypeError: Cannot read property 'menu_pid' of null at VueComponent.getTree


后来发现报错的原因是在进行循环的时候,


getTree(list, parentId) {
      let re = new Array();
      for (let i = 0; i < list.length; i++) {
             let pid = list[i].menu_pid; 提示这里报错
            //do something
      }
      return re;
},


发现父组件传递过来的数据 list 中有一个虚值[{},{},null];


就是这个虚值 null,导致报错了;


然后就阻塞了代码;导致后面的代码无法运行;


以后如何避免这样的问题;


在父组件向子组件传递数据的时候;


不要传递虚值,因为虚值会导致出现意想不到的错误;


在向下传递值的时候;要对值进行检查;


底层在进行循环的时候,注意代码的健壮性;


去除虚值


let arr = [11, 22, 33, null, '', undefined]
let newArr = [];
for (let i = 0; i < arr.length; i++) {
    if (arr[i]) {
        newArr.push(arr[i])
    }
}
console.log(newArr);//[11, 22, 33]
相关文章
|
5月前
|
容器
aside元素的注意事项
【8月更文挑战第31天】aside元素的注意事项。
25 1
|
5月前
|
Java 数据库
为什么要检查循环中的等待条件
【8月更文挑战第22天】
116 5
|
8月前
|
存储 前端开发 索引
Map循环注意事项
Map循环注意事项
29 1
|
8月前
|
Python
使用break语句提前终止循环
在编程中,循环结构是一种常用的控制流程机制,它允许代码块重复执行,直到满足某个条件为止。然而,在某些情况下,我们可能希望在循环的某个点提前终止循环,而不是等到满足循环条件。这时,我们可以使用break语句来实现这一功能。
103 1
|
Java
常见的for循环优化方式
经常使用一些循环,进行耗时计算的操作,特别是 for 循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当,将大大提高效率,下面总结几条 for 循环的常见优化方式。
135 0
|
8月前
|
C语言
19.C语言:用break语句提前终止循环
19.C语言:用break语句提前终止循环
164 0
|
8月前
|
C语言
20.C语言:用continue语句提前终止循环
20.C语言:用continue语句提前终止循环
141 0
|
8月前
while循环和do while循环有什么区别
while循环和do while循环有什么区别
97 0
while循环和do while循环有什么区别?
while循环和do while循环有什么区别?
152 0
|
存储 前端开发 索引
map循环注意事项
map循环注意事项
104 0

热门文章

最新文章