gpt4 book ai didi

Javascript错误返回提供的字符串,每个单词的首字母大写

转载 作者:行者123 更新时间:2023-11-30 12:28:08 25 4
gpt4 key购买 nike

我正在努力解决一个基本的编码挑战,我觉得我的代码应该可以工作。但是这一行没有正确重新分配 "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 中,字符串是不可变对象(immutable对象)。因此,一旦创建了 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错误返回提供的字符串,每个单词的首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28654482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com