let versions = ["1.45.0", "1.5", "6", "2.3.4.5"]; versions = versions.sort((a, b) => { let arr1 = a.split('.'); let arr2 = b.split('.'); let i = 0; while (true) { let s1 = arr1[i]; let s2 = arr2[i]; i++; if (s1 == undefined || s2 == undefined) { return arr1.length - arr2.length; } if (s1 == s2) { continue; } return s1 - s2; } }) console.log(versions); //[ '1.5', '1.45.0', '2.3.4.5', '6' ]