为了账号安全,请及时绑定邮箱和手机立即绑定

请问怎么在es6中优雅的退出循环并return

请问怎么在es6中优雅的退出循环并return

一只名叫tom的猫 2019-05-23 18:38:44
常常会遇到这样一个情况:varflag=false;vararr=["jpg","ppt","doc"];varnewArr=arr.length>0&&arr.reduce(function(x,y){if(x===""){flag==truereturn}returnx+"|"+y;})if(flag)return;//假装下面有代码//假装下面有代码//假装下面有代码在一个循环中想要终止程序的运行,需要多一个flag变量来处理,这样很丑陋并且还多出一个变量,很恶心,请问有没有比较优雅的方式???==================================Updata========================================实在是不好意思,我之前的提问不太明确,已经修改了问题,需求是这样的,我想对这个newArr进行正则表达式的校验,来排除一些文件格式。
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

你要的效果用.some()就可以解决,如果想数据所有项全部都通过断言,可以用.every():
constarr=[1,2,3,4,5,6,7];
if(arr.some(n=>n===5)){
return;
}
//假装下面有代码
来看个直观点的
if(arr.some(n=>{
console.log(n);
returnn===5;
})){
console.log("哎呀不得了,中断了");
return;
}
console.log("后面的代码");
输出
1
2
3
4
5
哎呀不得了,中断了
                            
查看完整回答
反对 回复 2019-05-23
?
LEATH

TA贡献1936条经验 获得超6个赞

vara=[1,2,3,4,5,6];
a.map(v=>{
if(v>2)thrownewError;
console.log(v)
})
按你这样用map可以强行抛出一个错误来退出。不过最好的方式应该是for循环中break;或者数组的some方法return
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 2528 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信