Skip to content

Instantly share code, notes, and snippets.

@digitalconceptvisuals
Created July 30, 2020 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save digitalconceptvisuals/81d54b0027bdec53b864d9512a213253 to your computer and use it in GitHub Desktop.
Save digitalconceptvisuals/81d54b0027bdec53b864d9512a213253 to your computer and use it in GitHub Desktop.
/**
* A function with an if-else-if ladder
* to determine which case conversion is to be done
*/
function changeCase(caseType, ...words) {
// We support lower and camelCase
// e.g changeCase("lower", "IoT")
// or changeCase("camel", "MY", "VAR")
// Sanitize user input to "lower", "camel" etc.
caseType = caseType.trim().toLowerCase();
// Get ready to convert
let result = "";
// Lower case
if (caseType == "lower") {
// Concatenate each element as lower
for (word of words) {
result += word
.toString()
.trim()
.toLowerCase();
}
} else if (caseType == "camel") {
// first word is lower
result = words[0]
.toString()
.trim()
.toLowerCase();
// Now rest of the words are Proper case
for (let offset = 1;
offset < words.length;
offset++) {
// First letter upper
result += words[offset]
.slice(0, 1)
.toUpperCase();
// Rest all lower
result += words[offset]
.slice(1)
.toLowerCase();
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment