大写字母的功能,错误

Col*_*rty 2 javascript arrays for-loop

该数组应该大写字符串中每个单词的第一个字母.我一直收到错误:"TypeError:array [i]未定义".

function LetterCapitalize(str) { 
  var array = str.split(" ");
  for(var i = 0; i<=array.length;i++){
    var secondArray = array[i].split();
    secondArray[0]=secondArray[0].toUpperCase();
    secondArray=secondArray.join();
    array[i] = secondArray
  }
  return array;

}
Run Code Online (Sandbox Code Playgroud)

p.s*_*w.g 9

问题是你的for循环运行时间太长.更改<=<你的条件:

for(var i = 0; i < array.length; i++) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

另外,正如Mehdi指出的那样,如果你想按每个角色使用分割一个字符串,array[i].split('');并将它们重新连接起来,请使用secondArray.join('');.如果你修复了所有这些,该函数仍将返回一个数组.如果你想让它返回一个字符串,请使用return array.join(' ').

但您可能需要考虑使用正则表达式替换:

function LetterCapitalize(str) { 
    return str.replace(/\b\w/g, function(c) { return c.toUpperCase(); });
}
Run Code Online (Sandbox Code Playgroud)