这个数组应该将字符串中每个单词的第一个字母大写。我不断收到错误消息:“TypeError: array[i] is undefined”。
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;
}
最佳答案
问题是您的 for 循环运行时间太长。更改 <=
至 <
在你的情况下:
for(var i = 0; i < array.length; i++) {
...
}
另外,作为 Mehdi points out , 如果您想按每个字符拆分字符串,请使用 array[i].split('');
将它们重新组合在一起时,使用 secondArray.join('');
.如果您修复了所有这些问题,该函数仍将返回一个数组。如果你想让它返回一个字符串,使用 return array.join(' ')
.
但您可能需要考虑使用正则表达式替换:
function LetterCapitalize(str) {
return str.replace(/\b\w/g, function(c) { return c.toUpperCase(); });
}
关于javascript - 大写字母的函数,错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342049/