【发布时间】:2018-05-22 19:37:50
【问题描述】:
我知道有很多关于如何将字符串中的字符全部转换为小写的讨论。我的问题是为什么我在下面的实现失败了。
代码:
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 语句测试应该通过,但该块中的代码显然没有运行或正在运行但没有预期的结果。
谢谢大家。
【问题讨论】:
-
Javascript 中的字符串是不可变的,一旦设置就无法更改。但是为什么要转换每个字符而不是整个字符串呢?
str.toLowerCase -
字符串是不可变的。您需要对整个字符串进行评估。
标签: javascript algorithm iteration