How can I capitalize the first letter of each word in a string using JavaScript?

You are making complex a very easy thing. You can add this in your CSS:

.capitalize {
    text-transform: capitalize;

In JavaScript, you can add the class to an element

 document.getElementById("element").className = "capitalize";

ECMAScript 6 version:

const toTitleCase = (phrase) => {
  return phrase
    .split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ');

let result = toTitleCase('maRy hAd a lIttLe LaMb');

You are not assigning your changes to the array again, so all your efforts are in vain. Try this:

function titleCase(str) {
   var splitStr = str.toLowerCase().split(' ');
   for (var i = 0; i < splitStr.length; i++) {
       // You do not need to check if i is larger than splitStr length, as your for does that for you
       // Assign it back to the array
       splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     
   // Directly return the joined string
   return splitStr.join(' '); 

document.write(titleCase("I'm a little tea pot"));