无法理解为什么代码给出错误:类型错误:0 是只读的
can't understand why code is giving error: TypeError: 0 is read-only
我刚刚开始学习JavaScript,并在freecodecamp中尝试篝火问题。我的代码旨在使每个单词的第一个字母大写。法典:
function titleCase(str) {
str = str.toLowerCase ();
var arr = str.split(' ');
for(var i=0; i<arr.length; ++i) {
arr[i][0] = arr[i][0].toUpperCase();
}
str = arr.join (' ');
return str;
//return arr[0][0];
}
titleCase("I'm a little tea pot");
相反,它返回一个错误:
类型错误: 0 是只读的
如果我尝试对字符串进行操作(它们是不可变的),我会理解错误。但是我正在尝试编辑一个完全可变的数组。
我的代码有什么问题?
您的代码没有给出任何错误,但它也没有使第一个字符大写
替换此行
arr[i][0] = arr[i][0].toUpperCase();
由
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
arr
确实是一个数组。它的元素是可变的,因此您可以将arr[i]
替换为另一个字符串。
但是,arr[i]
是一个字符串。尝试分配给arr[i][0]
无效,因为您正在尝试修改不可变字符串。
该错误来自freeCodeCamp的控制台,该控制台正确地将其标记为非法,但没有给出正确的解释。
你改变了你的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");
相关文章:
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 我们可以得到jQueryValidate错误类型吗
- 错误“类型错误: $(..).孩子不是一种功能”
- 谷歌图表绘制()方法错误类型时给定数据表
- 错误:类型错误: $(..).选择选择器不是使用 requireJS 加载的函数库
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- 随机子字符串错误?“类型错误:在对象中找不到函数子字符串.".
- 无法理解为什么代码给出错误:类型错误:0 是只读的
- 为什么我收到jQuery错误“类型错误:$(..).在以下场景中,Live 不是一个函数
- 角度类型提前异步结果 - 收到错误“类型错误:无法使用'in'运算符搜索 ..在..".
- 在 Node.js 服务器内发出异步请求错误:“类型错误:对象 #<对象> 没有方法'_implicitHeader'”
- JQuery 错误: 类型错误: 'undefined' 不是一个函数
- 在 Angular 应用程序上收到错误:类型错误:无法读取未定义的属性“then”
- 获取错误类型错误:onOk 不是一个函数
- 如何检测带有源的音频标记的错误类型
- Javascript-错误:inQuery Parse.com的102错误类型
- Javascript变量作用域问题-错误:类型错误:this.graphics未定义
- 捕获脚本错误 - 类型,行和文件
- jquery错误类型错误:值不是对象..split(& # 39; & # 39;)