javascript - 大写字母的函数,错误

标签 javascript arrays for-loop

这个数组应该将字符串中每个单词的第一个字母大写。我不断收到错误消息:“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/

相关文章:

PHP 多文本框数组

python - 在 Python 中使用 For 循环的累加器

c++ - 按字符循环遍历 std 字符串的段错误

python - 使用 for 循环对列表中的数字进行排序

javascript - Fabric js - 根据 Canvas 中添加的矩形调整整个 Canvas 的大小以实现裁剪

javascript - 无法访问 Polymer Element 中的 "custom-style"资源

javascript - 如何仅更改第一个元素的 url?

javascript - JSON、Fabric 和 IText 的错误

javascript - 根据值过滤对象数组

Java:System.arraycopy 没有复制我的数组