解决思路
第一种方法
function titleCase(str) {
  str=str.toLowerCase().split(‘ ‘);//将字符串统一转换小写,即将所有单词小写
  var change;//声明一个变量用于存放str中任意一个的元素
  for(var i=0;i<str.length;i++){//按顺序循环str中的元素
    change=str[i].split(‘‘);//将str第i+1个元素的字符串分割成字符串数组,即将单词分为单词长度的数组
    change[0]=change[0].toUpperCase();//将字符串数组中的第一个元素的字符串大写,即将首字母大写
    change=change.join(‘‘);//将单词长度的数组组合成单词
    str[i]=change;//将首字母大写的单词替换原来的单词
  }
  str=str.join(‘ ‘);//组合str数组变成字符串
  return str;//输出数组
}
titleCase("I‘m a little tea pot");
第二种方法
function titleCase(str) {
  str=str.split(‘ ‘);//将字符串分割成字符串数组
  var change;//声明一个变量用于存放str中任意一个的元素
  for(var i=0;i<str.length;i++){//按顺序循环str中的元素
    change=str[i].toLowerCase();//将str中的第i+1个元素转化成小写,并赋值给change
    change=change.split(‘‘);//将字符串转化成分割成字符串数组,即将单词分为单词长度的数组
change[0]=change[0].toUpperCase();//将字符串数组中的第一个元素的字符串大写,即将首字母大写
change=change.join(‘‘);//将单词长度的数组组合成单词
str[i]=change;//将首字母大写的单词替换原来的单词
}
str=str.join(‘ ‘);//组合str数组变成字符串
return str;//输出数组
}
titleCase("I‘m a little tea pot");
错误示例//基于第二种方法上的错误
function titleCase(str) {
  str=str.split(‘ ‘);
  var change;
  for(var i=0;i<str.length;i++){
    change=str[i].toLowerCase();//将str中的第i+1个元素转化成小写,并赋值给change
    change=str[i].split(‘‘);//这里将并未转换成小写的str中的第i+1个元素分割成字符串数组,重新给change赋值,造成了错误
    change[0]=change[0].toUpperCase();
    change=change.join(‘‘);
    str[i]=change;
  }
  str=str.join(‘ ‘);
  return str;
}
titleCase("I‘m a little tea pot");
原文:http://www.cnblogs.com/onPemako/p/6133295.html