Hi! I’m working on the “Title Case a Sentence” challenge and have what I believe to be working code (see below). I can call titleCase() manually using the different test case strings and see that the function returns the expected results in the “console”, however when I run the tests, every test case fails, except for the first test case (function should return a string). After taking a look at the hints for this challenge, I see that there’s a more elegant way to do this (using array.prototype.map instead of iterating over array elements using a loop and using string.prototype.charAt() with string.prototype.replace() instead of converting to a character array and back to change the first character), but I’d like to know why the code below fails the test cases, because as best as I can tell it does in fact function the way it should. Any thoughts would be appreciated, thanks!
function titleCase(str) {
// Split the string to get an array of strings containing
// each word of the sentence in all lower case letters.
var splitStr = str.toLowerCase().split(" ");
// Initialize the string that will be returned. We'll concatenate
// each word to this string after the first letter is capitalized
var retStr = "";
// Iterate through the array of words and capitalize
// the first letter in each one.
for(var i=0; i < splitStr.length; i++){
// Capitalize the first letter
var charArr = splitStr[i].split("");
charArr[0] = charArr[0].toUpperCase();
// Concatenate to the return string
retStr+= " " + charArr.join("");
}
return retStr;
}
titleCase("I'm a little tea pot");
Your browser information:
Your Browser User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36
.
Link to the challenge: