我知道有很多关于如何将字符串中的字符转换为小写的讨论。我的问题是为什么我的实现失败了。
CODE:
let str = 'aAaA';
const makeLowerCase = (string) => {
for ( var i = 0; i < string.length; i++ ) {
let lower = string[i].toLowerCase();
if (string[i] !== lower ) {
string[i] = lower;
}
}
}
console.log('before', str);
makeLowerCase(str);
console.log('after', str);
控制台输出:
before aAaA
after aAaA
即使对于索引1和3,if语句测试应该通过,该块中的代码显然没有运行或正在运行但没有预期的结果。
谢谢大家。
答案 0 :(得分:2)
JavaScript字符串是不可变的。因此,您无法使用C
编程样式更改字符串。而是使用以下代码
let str = 'aAaA';
const makeLowerCase = (string) => {
for ( var i = 0; i < string.length; i++ ) {
let lower = string[i].toLowerCase();
if (string[i] !== lower ) {
string = string.substring(0,i)+lower+string.substring(i+1);
}
}
return string;
}
console.log('before', str);
str = makeLowerCase(str);
console.log('after', str);
&#13;
您也可以简单地在整个字符串上调用toLowerCase()
方法,除非您有任何理由来运行循环。如下:
let str = 'aAaA';
str = str.toLowerCase();
console.log(str);
&#13;
答案 1 :(得分:0)
关闭语句并添加以下内容
Return string
运行
Console.log(makeLowerCase(...))
或const str = makeLowerCase(...); console.log(str)