In this problem, I am taking in a string and capitalizing the first letter of every word. Here I use a for…of loop. First I use the split() method to convert the string into an array and take the first letter of every word and capitalize it. Then I use the slice() method to add back the rest of the word. Slice(1) will take characters starting at index 1 and everything after it.
// OPTION 1
function capitalize(str) {
capsArray = [];
for (let word of str.split(' ')) {
capsArray.push(word[0].toUpperCase() + word.slice(1));
}
return capsArray.join(" ");
};
const output = capitalize("hello how are you");
console.log(output);
Option 2 – In this case, I work with the string as a string. I look to see if the character to the left is a space. If so, I make the character a capital letter. For the very first letter we are not able to look left, so I make it capital by default (“let result = str[0].toUpperCase()” ). Then I loop through the rest of the string, adding the characters back one-by-one and capitalizing them if the character to the left is a space.
// OPTION 2
function capitalize(str) {
let result = str[0].toUpperCase();
for (let i=1; i<str.length; i++) {
if(str[i-1] === ' ') {
result += str[i].toUpperCase();
} else {
result += str[i];
}
}
return result;
}
const output = capitalize("hello how are you");
console.log(output);