JSFiddle - React, Tailwind, and code Playground

JavaScript

function initCap(s) {
  var result = '';
  if ((typeof (s) === 'undefined') || (s == null)) {
    return result;
  }

  s = s.toLowerCase();
  var words = s.split(' ');
  for (var i = 0; i < words.length; ++i) {
    result += (i > 0 ? ' ' : '') + words[i].substring(0, 1).toUpperCase() + words[i].substring(1);
  }
  return result;
}
console.log(initCap('ONE'));                  //one word
console.log(initCap('ONE TWO'));              //two words
console.log(initCap('ONE TWO THREE'));        //three words
console.log(initCap('One Two Three Four'));   //already looked fine
console.log(initCap(null));                   //null
console.log(initCap(''));                     //no words
console.log(initCap('     '));                //several spaces
console.log(initCap('ONE    TWO    THREE'));  //many spaces between each