forEach-关于跳出循环
生活随笔
收集整理的這篇文章主要介紹了
forEach-关于跳出循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
forEach
(1)不能使用 continue 和 break !(for可以-continue過濾當前循環;break直接終止循環,跳出整個循環)
(2)使用return,只能跳出當前循環,并不能跳出整個循環,更不會終止循環。
(3)通過拋出異常的方式可以實現終止循環,跳出整個循環,如下示例:
let arr = [{a:'1',b:'2',c:'3'},{a:'11',b:'22',c:'33'}]; try {arr.forEach((val) => {if (val['b'] == '22') {throw new Error('end-loop')}console.log('forEach-throw', val);// {a:'1',b:'2',c:'3'};因為==22時,跳出整個循環了}) } catch (e) {console.log(e) }?
場景:
在選擇套餐商品時,關聯了多個商品,其商品的的數量可填寫。在提交時,要校驗其數量必須是大于0的正整數,如果不是,則給用戶提示報錯。
其實throw new Error() 就可以了。只是我創建一個值來存儲判斷結果了,而且數組對象整個都循環了一遍。像我上面那種只是給個提示不區分所有商品的數量給與一 一提示,有點代碼冗余了;
好吧,其實就這個場景來說,我代碼都冗余了,哈哈哈~? ES6中有filter(),some(),every()都可以做到,也是很簡潔了~
?
記錄一下我的代碼吧~,主要是弄清楚forEach的用法哦
html:
<div class="unit-prop-num">數量:<input type="number" [(ngModel)] = "item.linkedProductNum" min="1"/> </div>ts:
// 套餐商品-校驗//isUnitPro---1單個商品;2套餐商品//hUnitProduct: [{}],套餐商品數組對象if (this.isUnitPro == 2 ) {if(hUnitProduct.length <= 0){this._ils.alertOpen("套餐商品時,請至少選擇一個關聯套餐商品");return;}// /^[1-9]+[0-9]*$/,大于0的正整數let hReg = /^[1-9]+[0-9]*$/ ;let hxFlag = true;hUnitProduct.forEach((val)=>{console.log(val,111111,hReg.test(val['linkedProductNum']));// linkedProductNum --數量if(!hReg.test(val['linkedProductNum'])){hxFlag = false;return;}});if(!hxFlag){this._ils.alertOpen("套餐關聯商品數量必須為大于0的整數");return;}}結果:
?
參考文章:
for和forEach怎么跳出循環
Js中forEach跳出本次循環和終止循環
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的forEach-关于跳出循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买iPadmini6还是等iPadmin
- 下一篇: 接口响应的Response Header