亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問怎么在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條經驗 獲得超7個贊

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 關注
  • 2541 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號