三者都可以用来循环,只是适用的场景不同。
简单的介绍一下三者的特点
forEach 不会遍历数组中的属性,不能使用break,不能使用return跳出 --适合数组,跟while 差不多
for in 数组中添加属性,可以使用for in 给显示出来,在ts中不建议使用这种方式,可以使用continue 跳过该循环,它还是继续往下走, --以前遍历数组常用它,是遍历常用的方法
js中解决的办法可以使用hasOwnProperty判断 是否有该属性,然后过滤掉,if(!arr.hasOwnProperty('a')) continue;
for of 循环 用在任何的对象上,可以用break中断,continue中断、return中断,不会显示数组中添加的属性,在ts中使用这种方式遍历对象比较好。
//栗子 var arr = [1,2,3]; arr.a = '--' for(var n in arr){ console.log(n) } //返回 1,2,3,a //这个时候想要获取a里面的值,修改打印 console.log(arr[n]) //返回 1,2,3,--