I have this array of semver versions:
let versions = ['4.5.0', '4.5.1', '4.5.2', '4.6.0', '4.6.1', '4.6.2', '4.7.0', '4.7.1', '4.8.0', '4.8.1']
I want to filter this array and keep only the latest patch versions based on minor and major versions.
Expected result:
['4.5.2', '4.6.2', '4.7.1', '4.8.1']
I tried to check every version in two loops comparing major and minor versions, but every time I have duplicates and lower versions in the final array.
My code:
for (let versions of supportedReleaseList) {
for (let doubleCheckVersion of supportedReleaseList) {
if (semver.parse(versions).major === semver.parse(doubleCheckVersion).major) {
if (semver.parse(versions).minor === semver.parse(doubleCheckVersion).minor) {
if (semver.parse(versions).patch > semver.parse(doubleCheckVersion).patch) {
finalList.push(versions);
}
}
}
}
}
And the result was:
['4.5.1', '4.5.2', '4.5.2', '4.6.1', '4.6.2', '4.6.2', '4.7.1', '4.8.1']