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)
问题是你的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)