需求
有一个白名单功能,当前登录用户在白名单内的话,直接进入首页,否则进入认证页面。
当前登录为cc
,白名单列表为["aa", "bb", "cc", "dd", "ee", "ff"]
,使用forEach()和for()看看有啥问题:
for循环做法:搭配return
从打印结果来看,当遍历到cc
所在的索引就跳出整个for循环,因此采取该做法可以实现这个需求。
var nameListArray = ["aa", "bb", "cc", "dd", "ee", "ff"];
for(var i = 0; i < nameListArray.length; i++) {
console.log('index为---',i);
if(nameListArray[i] == 'cc') {
console.log('匹配到的索引为---',i,'name为--',nameListArray[i]);
return true;
}
}
打印结果
image.pngforEach()做法:搭配return
从打印结果来看,当遍历到cc
所在的索引时,就会终止本次循环,进行下一个i
的循环,并不会跳出整个循环。因此采取该做法不符合该需求。
var nameListArray = ["aa", "bb", "cc", "dd", "ee", "ff"];
nameListArray.forEach((item, i) => {
console.log('i为---', i);
if (nameListArray[i] === 'cc') {
console.log('匹配到的索引为---', i, 'name为--', nameListArray[i]);
return true;
}
})
打印结果
image.png总结:
1:forEach()
搭配return
不支持中断整个循环的功能,而for循环
搭配return
支持。
2:forEach()
更加简洁和高效,只是有局限性,1
就是一个局限性;for循环
适用性更广。
网友评论