为什么下面的代码没有将检索到的字母更改为大写?[复制]

How come the following code doesn't change the retrieved letters into upper case? [duplicate]

提问人:MattPhew 提问时间:1/28/2023 最后编辑:SamathingamajigMattPhew 更新时间:1/28/2023 访问量:24

问:

The code. Press the link to see the image

这样做的目的是将检索到的字母更改为大写。我知道如果我将第 6 行和第 7 行存储在变量中,然后替换名为字符串的变量中的字母,这有效,但我想知道为什么这段代码不起作用。

JavaScript 变量 方法

评论

1赞 Bergi 1/28/2023
请将代码作为格式化文本发布,而不是指向它的绘画的链接

答:

0赞 Samathingamajig 1/28/2023 #1

JavaScript 字符串是不可变的,这意味着您不能更改某个索引处的字符值。您需要创建一个由这些值组成的新字符串。

let string = 'lowercasestring'; // Creates a variable and stores a string.
let letterOne = string.indexOf('l'); // Should store as 0.
let letterTwo = string.indexOf('s'); // Should store as 7.

// mutiple lines for readability
string = string[letterOne].toUpperCase() +
         string.slice(letterOne + 1, letterTwo) +
         string[letterTwo].toUpperCase() +
         string.slice(letterTwo + 1);

console.log(string);

输出:

"LowercaSestring"

评论

0赞 MattPhew 1/28/2023
谢谢你帮助我,我今天能够学到一些新东西。