返回每个单词的第一个字母大写的字符串时出现Javascript错误
Javascript error with Returning the provided string with the first letter of each word capitalized
我正在解决一个基本的编码挑战,我觉得我的代码应该可以工作。但该行未正确重新分配"str[i][0] = str[i].charAt(0).toUpperCase();
"
我只是不知道为什么在Javascript中会这样,我想我已经在Ruby中毫无问题地解决了同样的问题。任何关于在哪里了解更多关于如何在Javascript中工作的提示或链接都将不胜感激!
这就是挑战:
返回提供的字符串,每个单词的第一个字母大写。
function titleCase(str) {
str = str.toLowerCase();
str = str.split(" ");
for (var i = 0; i < str.length; i++) {
str[i][0] = str[i].charAt(0).toUpperCase();
}
str = str.join(" ");
return str;
}
console.log(titleCase("I'm a little tea pot"));
在JavaScript中,字符串是不可变的对象。因此,一旦创建了String对象,就不能更改其中的单个字符,但需要创建一个新的String对象。所以,你最好用这种
function titleCase(str) {
str = str.toLowerCase().split(" ");
for (var i = 0; i < str.length; i++) {
str[i] = str[i].charAt(0).toUpperCase() + str[i].substring(1);
}
return str.join(" ");
}
console.log(titleCase("I'm a little tea pot"));
# I'm A Little Tea Pot
关键是
str[i] = str[i].charAt(0).toUpperCase() + str[i].substring(1);
我们取每个单词的第一个字符,将其转换为大写,然后将其与实际字符串的其余部分连接,并将新创建的string对象存储回str
数组中。
除此之外,如果你更喜欢功能触摸来解决这个问题,你可以做
function titleCase(str) {
return str.toLowerCase().split(" ").map(function(currentPart) {
return currentPart.charAt(0).toUpperCase() + currentPart.substring(1);
}).join(" ");
}
map
函数将调用传递给它的函数,其中每个元素都来自split
数组,并返回另一个数组。最后,我们用join
将所有元素连接在一起。
相关文章:
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- 检查时出现未闭合字符串错误
- Javascript查询字符串错误'='显示为%26
- 我没有'无法理解此子字符串错误
- 输出中的随机字符串错误
- 调用 JQuery 函数时 asp.net 字符串错误
- jQuery localtime,收到不受支持的日期/时间字符串错误
- 创建视区会导致未捕获的语法错误:意外的字符串错误
- 随机子字符串错误?“类型错误:在对象中找不到函数子字符串.".
- 为什么我会出现意外的字符串错误
- Meteor返回无效的十六进制字符串错误试图创建ObjectID
- 使用Moment.js解析日期字符串错误地返回Unix时间戳
- JSON输入字符串错误使用$.ajax
- Django.Jquery.用引号转义字符串错误
- django模板标签中没有终止的字符串错误
- 流星选择器不工作,出现意外字符串错误
- 迭代时出现未终止字符串错误
- 在数据库中存储JSON数据:对象无法转换为字符串错误
- jquery/Javascript中的字符串错误
- JavaScript json.parse字符串错误