APP版本號對比大小及排序

2021-10-01 08:14:17 字數 887 閱讀 4094

在最近的一次開發過程中,遇到了乙個需求,需要獲取所有同型別中最新的版本號,後端沒有這個介面,只能獲取全部版本號資料在前端處理。一開始就想到了使用陣列的sort()方法去處理,但是因為版本號的命名不規律等問題,自己寫的始終有問題,後來也是網上看了大神們的**,才進行了補完。現在整理整理,以備後用。

方法一: 轉成數字進行對比(適用於兩個比較有規律命名的版本號,且版本號為數字,不包含字母及特殊符號)

function compare(a, b)  else 

};// 定義兩個版本號變數

var a = '1.0.55';

var b = '1.2.1';

compare(a, b); // b

方法二: (待續。。。)

function comparearr(arr)  else if (parseint(aaa[i]) > parseint(bbb[i]))  else if (i === maxl && aaa[i] === bbb[i]) 

}return r

})}var versionarr = [ '1.0.1', '1.05.1', '1.2.5555', '1.1.3.2', '1', '1.10']

console.log(comparearr(versionarr)) // ["1.10", "1.05.1", "1.2.5555", "1.1.3.2", "1.0.1", "1"]

統一陣列長度,使用最大長度進行迴圈比較,而不是使用最小長度進行比較,避免了版本號風格不統一的問題。

使用了數字比較而不是字串比較,避免不準確的bug。

不足:沒有總結版本號中包含字母或者特殊符號等的比較;只適用於版本號為數字標記的。

Java實現比較APP版本號大小

實現 如下 1 前者大則返回乙個正數 2 後者大返回乙個負數 3 相等則返回0 return int if version1 null version2 null 注意此處為正則匹配,不能用.string versionarray1 version1.split string versionarra...

java app版本號對比

比較版本號的大小 前者大則返回乙個正數 後者大返回乙個負數 相等則返回0 param version1 param version2 return private static int compareversion string version1 string version2 string ver...

Android版本號對比

在android開發中不可避免會遇到版本公升級的功能,在版本公升級時就需要對比版本號。public static string getversionname context context catch packagemanager.namenotfoundexception e return nul...