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