开篇介绍–因为最近无暇整理编写内容比较丰富的博文,所以想着是不是可以把平时见到或者用到的一些开发小技巧分享给大家。文章大概构成是场景+代码+解释,希望对大家有所帮助~

不知道大家平时有没遇到过要判断版本号的需求,假设有这样一个场景,我们需要在H5或者小程序中判断微信客户端的版本号,不同版本的微信显示不一样的UI或者执行不同的逻辑。

targetVersion是我们能够取到的当前的版本号,baseVersion是我们的“标尺”版本。 在函数的开头,当然是要校验一下入参,避免因传参问题导致程序崩溃的尴尬状况。

整个判断的核心是版本号分解以及逐级比较,将入参的字符串通过split方法分解成数组,然后进行同位比较。

比较的方式确定了,但是比较的顺序应该是怎样的呢?在这个函数中不同的比较顺序决定整个流程的复杂程度。在此,个人推崇从头开始比较,也就是从版本号的首位开始。

故将i设为0,进入while循环中,我们首要比较的就是tList[0]与bList[0]这两个数字的大小,如果在此tList的数字要更大,我们则完全可以不用继续比较下面的数字,可以直接得出targetVersion版本较高的结论。反之,如果tList的数值小于bList则可以得出相反的结论,倘若两个数字相等,则进入下一位的比较,直到全部比较完成。最终return出我们的比较结果,供外部使用。