一段代码的优化过程

2017-11-01  本文已影响0人  长弓简

需求场景:公司要制定一个采购单,但是公司有自己的采购需求的计划部门,因此在制定采购计划的时候,单个物料关联采购需求,单条采购的数量要不大于采购需求,有因为物料可能有损耗,因此输入的数量允许有百分之十的多余。按此,写一个验证。

1.代码:


image.png

代码解析:
首先我想到的是先将所有的物料明细信息传进来(data),然后第一个for循环将所有的明细信息按照选中的所有的相同的需求id进行分组,分组,


image.png
分出来的形式就如图所示,分组后进行分别的验证处理,也就是第二个for循环,
计算出一个最大值然后进行比较。把不满足条件的数据的编号存到数组里。调用验证方法后显示出来。

但是这段代码的运行效率肯定不高,for循环是非常拖慢程序运行的,那现在我们明确的我们的目标就是减少for循环来提高代码的运行效率。
首先将数据进行分组的操作,我们可以通过构造json格式来省去一个for循环。

2.代码:


image.png

这段代码的核心是构造json格式,构造出来的样式就像这样:


image.png
然后我们循环这个json,通过比较,将不满足的那一个json里的“materielCodes: [demandData.materials.code]"这个数组合并到我们准备的那个数组容器中,判断如果这个数组容器中有值,则表明有不满足的明细信息,再返回true,将不满足的信息提示出来。这样一来省去了三个for循环,提高了运行效率。
上一篇下一篇

猜你喜欢

热点阅读