Skip to content

Instantly share code, notes, and snippets.

@luan0ap
Last active June 21, 2022 21:28
Show Gist options
  • Save luan0ap/4ab9447ca581e7daabfd15fa789e7e46 to your computer and use it in GitHub Desktop.
Save luan0ap/4ab9447ca581e7daabfd15fa789e7e46 to your computer and use it in GitHub Desktop.
Sort version numbers
function sortVersions (versions = []) {
const sortByVersionNumber = (vA, vB) => {
const versionsA = vA.split('.')
const versionsB = vB.split('.')
const compareVersionNumbers = (index = 0, lastResult = 0) => {
const versionNumberA = Number(versionsA[index]) || 0
const versionNumberB = Number(versionsB[index]) || 0
if (lastResult === 0) {
if (versionNumberA > versionNumberB) {
return compareVersionNumbers(index + 1, 1)
}
if (versionNumberA < versionNumberB) {
return compareVersionNumbers(index + 1, -1)
}
if (versionNumberA === versionNumberB) {
return compareVersionNumbers(index + 1, 0)
}
}
return lastResult
}
return compareVersionNumbers()
}
return versions.sort(sortByVersionNumber)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment