常常會遇到這樣一個情況:
var flag=false;
var arr=["jpg","ppt","doc"];
var newArr=arr.length>0 && arr.reduce(function(x,y){
if(x===""){
flag==true
return
}
return x+"|"+y;
})
if(flag)return;
//假裝下面有代碼
//假裝下面有代碼
//假裝下面有代碼
在一個循環(huán)中想要終止程序的運行,需要多一個flag變量來處理,這樣很丑陋并且還多出一個變量,很惡心,請問有沒有比較優(yōu)雅的方式???
==================================Updata========================================
實在是不好意思,我之前的提問不太明確,已經(jīng)修改了問題,需求是這樣的,我想對這個newArr進行正則表達式的校驗,來排除一些文件格式。
你要的效果用 .some() 就可以解決,如果想數(shù)據(jù)所有項全部都通過斷言,可以用 .every():
const arr = [1, 2, 3, 4, 5, 6, 7];
if (arr.some(n => n === 5)) {
return;
}
// 假裝下面有代碼
來看個直觀點的
if (arr.some(n => {
console.log(n);
return n === 5;
})) {
console.log("哎呀不得了,中斷了");
return;
}
console.log("后面的代碼");
輸出
1
2
3
4
5
哎呀不得了,中斷了看不太明白樓主的意思但是隨便說一點吧
map在這里是不合適的,map是有返回的的
如果你的目地是如何某個數(shù)組中含有,特殊的字符或值,你就中斷這個函數(shù),你可以先用indexof,includes來處理
比如說,如果某個數(shù)組中含有空字符串,我就不處理整個數(shù)組
if(arr.includes('') )return
然后進入循環(huán)
或者直接用for循環(huán) 如果
function func(){
for(int i=0;i<=arr.length;i++){
if(arr[i]==='') return //如果在函數(shù)中,執(zhí)行到這里,跳出循環(huán)并直接返回了,下面代碼都不會執(zhí)行
.......
}
.......
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。