-
-
Save digitalconceptvisuals/81d54b0027bdec53b864d9512a213253 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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