Skip to content

Instantly share code, notes, and snippets.

@AlvisonHunterArnuero
Created April 14, 2024 04:25
Show Gist options
  • Save AlvisonHunterArnuero/5348d4a11e61682b1ca4db827d33dc37 to your computer and use it in GitHub Desktop.
Save AlvisonHunterArnuero/5348d4a11e61682b1ca4db827d33dc37 to your computer and use it in GitHub Desktop.
const sortGrades = lst => {
const grades = [
"VB", "V0", "V0+", "V1", "V2", "V3", "V4", "V5", "V6", "V7",
"V8", "V9", "V10", "V11", "V12", "V13", "V14", "V15", "V16", "V17"
];
const result = new Array(grades.length).fill(null);
if (lst.length === 0) {
return [];
}
if (lst.length === 1) {
return lst;
}
lst.forEach((elem) => {
let itemIndex = grades.indexOf(elem);
if (result.includes(elem)) {
result.splice(itemIndex + 1, 1, elem);
} else {
result.splice(itemIndex, 1, elem);
}
});
return result.filter((el) => el !== null);
};
// Test Cases
console.log(sortGrades(["V7", "V12", "V1"]));
//, ["V1", "V7", "V12"]
console.log(sortGrades(["V13", "V14", "VB", "V0"]));
//, ["VB", "V0", "V13", "V14"]
console.log(sortGrades(["V0+", "V0", "V16", "V2", "VB", "V6"]));
//, ["VB", "V0", "V0+", "V2", "V6", "V16"]
console.log(sortGrades(["V7"]));
//, ["V7"]
console.log(sortGrades(["VB", "VB"]));
//, ["VB","VB"]
console.log(sortGrades( ['V3','V0+', 'V0', 'V5', 'V1','V17']));
// ['V0', 'V0+', 'V1', 'V3', 'V5', 'V17']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment