Skip to content

Instantly share code, notes, and snippets.

@id0Sch
Created October 29, 2015 11:28
Show Gist options
  • Save id0Sch/033e3329190b4234cf56 to your computer and use it in GitHub Desktop.
Save id0Sch/033e3329190b4234cf56 to your computer and use it in GitHub Desktop.
/**
* This function compares between two version numbers formatted x.x.x...
* @param v1 - String
* @param v2 - String
* @returns {int}
* -1 if v1 is larger
* 1 if v2 is larger
* 0 if v1 & v2 are equal
*/
versionCompare: function (v1, v2) {
if (v1) {
var v1parts = v1.split('.');
} else {
if (v2) {
return 1; // v1 is missing. Treat v2 as larger.
} else {
return 0; // Both are undefined.
}
}
if (v2) {
var v2parts = v2.split('.');
} else {
return -1; // v2 is missing. Treat v1 as larger.
}
// Force equal length on both arrays:
while (_.size(v1parts) != _.size(v2parts)) {
if (_.size(v1parts) > _.size(v2parts)) {
v2parts.push(0);
} else { // (_.size(v1parts) < _.size(v2parts)
v1parts.push(0);
}
}
// Assuming equal length:
for (var i = 0; i < v1parts.length; ++i) {
if (v1parts[i] < v2parts[i]) { //v2 part is larger.
return 1;
} else if (v1parts[i] > v2parts[i]) { //v1 part is larger.
return -1;
} // Else equal
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment