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

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

阿波罗的战车

你要的效果用.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("后面的代码");输出12345哎呀不得了,中断了

LEATH

vara=[1,2,3,4,5,6];a.map(v=>{if(v>2)thrownewError;console.log(v)})按你这样用map可以强行抛出一个错误来退出。不过最好的方式应该是for循环中break;或者数组的some方法return
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript