JS 實現版本號比較功能

js實現一個客戶端版本號的統計,目前該功能能夠實現版本號中數字版本的統計,例如2.2.3 <2.2.3.1, 1.2.3<2.0.0,原理就是從高版本號到次版本號依次比較this

 1 if (!Array.prototype.trim){
 2                 Array.prototype.trim=function(){
 3                     var  arr=[];
 4                     this.forEach(function(e){
 5                         if(e.match(/\S+/))  arr.push(e);
 6                     })
 7                     return arr;
 8                 }
 9             }
10 
11 function version_compare(a,b) {
12                                 var a_str=a.name.toString();
13                                 var a_version=a_str.split(/\D+/).trim();
14                                 var b_str=b.name.toString();
15                                 var b_version=b_str.split(/\D+/).trim();
16 
17                                 var aLength = a_version.length;
18                                 var bLength = b_version.length;
19                                 var minL = Math.min(aLength,bLength);
20                                     var r = null
21                                     for (var i = 0; i < minL; i++) {
22                                        //此處要轉成Number類型,否則比較會出現15<6的狀況,可能因爲正則匹配形成的,尚未詳細探究緣由
23                                         var aNum = new Number(a_version[i]);
24                                         var bNum = new Number(b_version[i]);
25                                         if (aNum < bNum) {
26                                             r = 1
27                                             break;
28 
29                                         } else if (aNum >bNum) {
30                                             r = -1;
31                                             break;
32                                         } else if (i == minL-1 && aNum == bNum) {
33 
34                                             if(aLength>minL){
35                                                 r = 1;
36                                                 break;
37                                             }else if(bLength>minL) {
38                                                 r = -1;
39                                                 break;
40                                             }
41                                         }
42 
43                                     }
44                                 return r;
45                                 }
相關文章
相關標籤/搜索