需求場景:公司要制定一個(gè)采購單纱耻,但是公司有自己的采購需求的計(jì)劃部門波岛,因此在制定采購計(jì)劃的時(shí)候茅坛,單個(gè)物料關(guān)聯(lián)采購需求,單條采購的數(shù)量要不大于采購需求则拷,有因?yàn)槲锪峡赡苡袚p耗贡蓖,因此輸入的數(shù)量允許有百分之十的多余。按此煌茬,寫一個(gè)驗(yàn)證斥铺。
1.代碼:
image.png
代碼解析:
首先我想到的是先將所有的物料明細(xì)信息傳進(jìn)來(data),然后第一個(gè)for循環(huán)將所有的明細(xì)信息按照選中的所有的相同的需求id進(jìn)行分組坛善,分組晾蜘,
image.png
分出來的形式就如圖所示,分組后進(jìn)行分別的驗(yàn)證處理眠屎,也就是第二個(gè)for循環(huán)剔交,
計(jì)算出一個(gè)最大值然后進(jìn)行比較。把不滿足條件的數(shù)據(jù)的編號存到數(shù)組里改衩。調(diào)用驗(yàn)證方法后顯示出來岖常。
但是這段代碼的運(yùn)行效率肯定不高,for循環(huán)是非常拖慢程序運(yùn)行的葫督,那現(xiàn)在我們明確的我們的目標(biāo)就是減少for循環(huán)來提高代碼的運(yùn)行效率竭鞍。
首先將數(shù)據(jù)進(jìn)行分組的操作,我們可以通過構(gòu)造json格式來省去一個(gè)for循環(huán)候衍。
2.代碼:
image.png
這段代碼的核心是構(gòu)造json格式笼蛛,構(gòu)造出來的樣式就像這樣:
image.png
然后我們循環(huán)這個(gè)json鸵赖,通過比較硕盹,將不滿足的那一個(gè)json里的“materielCodes: [demandData.materials.code]"這個(gè)數(shù)組合并到我們準(zhǔn)備的那個(gè)數(shù)組容器中巷帝,判斷如果這個(gè)數(shù)組容器中有值纷跛,則表明有不滿足的明細(xì)信息妖异,再返回true惋戏,將不滿足的信息提示出來。這樣一來省去了三個(gè)for循環(huán)他膳,提高了運(yùn)行效率响逢。