Javascript can';无法理解代码给出错误的原因:TypeError:0是只读的

Javascript can';无法理解代码给出错误的原因:TypeError:0是只读的,javascript,Javascript,我刚刚开始学习JavaScript,并尝试在freecodecamp中提出篝火问题。我的代码是让每个单词的第一个字母大写。 代码: 功能滴定酶(str){ str=str.toLowerCase(); var arr=str.split(“”); 对于(var i=0;i您的代码没有给出任何错误,但也没有使第一个字符大写 更换这条线 arr[i][0] = arr[i][0].toUpperCase(); 借 您可以更改Javascript 像这样 function titleCase(st

我刚刚开始学习JavaScript,并尝试在freecodecamp中提出篝火问题。我的代码是让每个单词的第一个字母大写。 代码:

功能滴定酶(str){
str=str.toLowerCase();
var arr=str.split(“”);

对于(var i=0;i您的代码没有给出任何错误,但也没有使第一个字符大写

更换这条线

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


您可以更改Javascript 像这样

function titleCase(str) {
str = str.toLowerCase ();
var arr = str.split(' ');
for(var i=0; i<arr.length; ++i) {
 arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);   
}


str = arr.join (' ');
 return str;
//return arr[0][0];
}

titleCase("I'm a little tea pot");
功能滴定酶(str){
str=str.toLowerCase();
var arr=str.split(“”);

for(var i=0;i
arr
实际上是一个数组。它的元素是可变的,因此您可以用另一个字符串替换
arr[i]

但是,
arr[i]
是一个字符串。尝试分配给
arr[i][0]
无效,因为您正在尝试修改不可变字符串


错误来自freeCodeCamp的控制台,该控制台正确地将此标记为非法,但没有给出正确的解释。

检查此项:无法复制您的错误,如果它没有返回您想要的内容,事件是否有办法修复我的代码?@Gwendal我正在freeCodeCamp编译器上运行代码,因此可能这就是您没有收到相同错误的原因MessageThank这是有效的。我的代码是否因为数组仍保存着字符串而无法工作,或者是否存在其他字符串reason@demonSlayer我不知道你的代码为什么不能正常工作,因为我不知道freecodecamp编译器。他们的文档中也没有提到数组不变性,我想charat()这是必要的,否则整个单词都会大写。我知道这已经5年了,但我实际上是从freeCodeCamp来到这里的,有着几乎完全相同的问题和最初的误解,发现答案并不完全有用。其他人已经回答了应该用什么来代替,但不是问题的真正原因M
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
function titleCase(str) {
str = str.toLowerCase ();
var arr = str.split(' ');
for(var i=0; i<arr.length; ++i) {
 arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);   
}


str = arr.join (' ');
 return str;
//return arr[0][0];
}

titleCase("I'm a little tea pot");