Keep going long enough and you’ll get to know the ins and outs of prototypes. This is one of the many ways that careful naming of variables can save you a headache. If you use something like lowerCaseArr instead of x, you’ll remember that it is an array and that you have array methods (and only array methods) available to you.
1 Like
Ariel. I’ve been working out. I couldn’t get the solution. But I have this:
function titleCase(str) {
let myArr = str.split(" ");
let arr1 = [];
let arr2 = [];
let arr3 = [];
let str1;
let str2;
for (let i = 0; i < myArr.length; i++){
arr1.push(myArr[i].toLowerCase());
arr2.push(arr1[i].charAt(0).toUpperCase());
arr3.push(arr2[i] + arr1[i]);
}
let index = 1;
for (let j = 0; j < arr3.length; j++){
str2 = arr3[j].slice(0,index).concat(arr3[j].slice(index+1))
}
return str2;//--> "Stout"
}
titleCase("sHoRt AnD sToUt");
Problem: I don’t understand why It only works at the third word. As far as I understand str2 is a string. Is it a problem with the structure of the second loop statment? What am I missing?
str2 is going to contain only the last word because your second loop is always overwriting it with the current word.
1 Like
…because str2 it is not an array, right? I hope I got it.
Ariel, now you can sleep. Finally, I got one solution:
function titleCase(str) {
let myArr = str.split(" ");
let arr1 = [];
let arr2 = [];
let arr3 = [];
let arr4 = [];
let str1;
for (let i = 0; i < myArr.length; i++){
arr1.push(myArr[i].toLowerCase());
arr2.push(arr1[i].charAt(0).toUpperCase());
arr3.push(arr2[i] + arr1[i]);
}
for (let i = 0; i < arr3.length; i++) {
str1 = arr3[i].slice(0,1).concat(arr3[i].slice(2));
arr4.push(str1);
}
let result = arr4.join(" ");
return result;
}
Good job finding a solution. Now give your poor brain a rest 
My brain is just warming up:
function titleCase(str) {
const arr3 = str.split(" ");
const arr4 = arr3.map(str => str.toUpperCase().slice(0, 1).concat(str.toLocaleLowerCase().slice(1)));
return arr4.join(" ");
}
titleCase("I'm a little tea pot");
It seems that as I lost the pressure of solving it, it got easy to think over in easier ways.
By the way, thanks for you feedback.
Got it. Thanks for the feedback!