将大写字母转换为小写字母

时间:2018-05-22 19:37:51

标签: javascript algorithm iteration

我知道有很多关于如何将字符串中的字符转换为小写的讨论。我的问题是为什么我的实现失败了。

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语句测试应该通过,该块中的代码显然没有运行或正在运行但没有预期的结果。

谢谢大家。

2 个答案:

答案 0 :(得分:2)

JavaScript字符串是不可变的。因此,您无法使用C编程样式更改字符串。而是使用以下代码

&#13;
&#13;
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;
&#13;
&#13;

您也可以简单地在整个字符串上调用toLowerCase()方法,除非您有任何理由来运行循环。如下:

&#13;
&#13;
let str = 'aAaA';
str = str.toLowerCase();
console.log(str);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

关闭语句并添加以下内容

Return string

运行

Console.log(makeLowerCase(...))

const str = makeLowerCase(...); console.log(str)