JavaScript For循环: Assignment to character not working

标签 javascript string for-loop substring

我正在编写一个测试函数来将句子中的每个单词大写。我最终解决了这个问题;然而,当我想解决这个问题时,我的第一次尝试并没有成功。

function capSentence(str) { 
  var strArray = str.split(" ");
  var answer = '';
  var temp = '';
  for(var i = 0; i < strArray.length; i++){
    strArray[i][0] = strArray[i][0].toUpperCase();
    answer += strArray[i];
    if(i !== strArray.length-1){
      answer += ' ';
    }
  }
  return answer; 

}

capSentence("this is a test");

我以为上面的代码会输出“这是一个测试”,但它却输出“这是一个测试”。

strArray[i][0] = strArray[i][0].toUpperCase();

好像没有什么影响。这是为什么?

最佳答案

@thefourtheye 的评论是正确的。您需要构建一个新字符串。

function capSentence(str) { 
  var strArray = str.split(" ");
  var answer = '';
  var temp = '';

  for(var i = 0; i < strArray.length; i++){
      answer += strArray[i][0].toUpperCase();
      answer += strArray[i].slice(1,strArray[i].length);

      if(i !== strArray.length-1){
        answer += ' ';
      }
   }

   return answer;

}

关于JavaScript For循环: Assignment to character not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761390/

相关文章:

python - 将字符串中的字符与其索引号相乘

c - 用 calloc 初始化的随机数填充指针数组的问题

javascript - SVG 标签转换为 PNG 图片并下载

javascript - 折叠内容 - Javascript CSS

javascript - 检查文本字段值长度

javascript - 如何 chop jQuery 中的字符串?

c# - 如何在c#中替换字符串之间的某些字符?

javascript - 如何打印 $rootScope 变量?

javascript - Knockout 中的简单字符串替换

javascript - style.display 为 null - 尝试遍历数组并更改显示属性