常常会遇到这样一个情况: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("后面的代码");输出12345哎呀不得了,中断了
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
添加回答
举报
0/150
提交
取消