I need to make a function that reads a string input and converts the odd indexed characters in the string to upperCase and the even ones to lowerCase.
function alternativeCase(string){
for(var i = 0; i < string.length; i++){
if (i % 2 != 0) {
string[i].toUpperCase();
}
else {
string[i].toLowerCase();
}
}
return string;
}
How to fix my code?
I need to make a function that reads a string input and converts the odd indexed characters in the string to upperCase and the even ones to lowerCase.
function alternativeCase(string){
for(var i = 0; i < string.length; i++){
if (i % 2 != 0) {
string[i].toUpperCase();
}
else {
string[i].toLowerCase();
}
}
return string;
}
How to fix my code?
Share Improve this question edited Jan 8, 2019 at 3:55 Cœur 38.8k25 gold badges205 silver badges277 bronze badges asked Jan 3, 2017 at 21:42 Ann0nymAnn0nym 131 silver badge5 bronze badges 1- 1 Possible duplicate of Are JavaScript strings immutable? Do I need a "string builder" in JavaScript? – PM 77-1 Commented Jan 3, 2017 at 21:45
4 Answers
Reset to default 5function alternativeCase(string){
return string.split('').map(function(c,i) {
return i & 1 ? c.toUpperCase() : c.toLowerCase();
}).join('');
}
Update 2019
These days it's pretty safe to use ES6 syntax:
const alternativeCase = string => string.split('')
.map((c,i) => i & 1 ? c.toUpperCase() : c.toLowerCase()).join('');
Try this:
function alternativeCase(string){
var output = "";
for(var i = 0; i < string.length; i++){
if (i % 2 != 0) {
output += string[i].toUpperCase();
}
else {
output += string[i].toLowerCase();
}
}
return output;
}
Strings in JavaScript are immutable, Try this instead:
function alternativeCase(string){
var newString = [];
for(var i = 0; i < string.length; i++){
if (i % 2 != 0) {
newString[i] = string[i].toUpperCase();
}
else {
newString[i] = string[i].toLowerCase();
}
}
return newString.join('');
}
RegExp alternative that handles space between characters :
const alternativeCase = s => s.replace(/(\S\s*)(\S?)/g, (m, a, b) => a.toUpperCase() + b.toLowerCase());
console.log( alternativeCase('alternative Case') )