Javascript-将字符串中的所有字母转换为大写或小写

Javascript-将字符串中的所有字母转换为大写或小写,javascript,string,uppercase,lowercase,Javascript,String,Uppercase,Lowercase,我是Javascript的初学者。 我试图制作一个函数,将字符串转换为大写或小写。 但我不明白为什么它能获得预期的产出。 以下是我的函数用途和代码。谢谢 功能用途: W当字符串中的字母为大写时,它将变为小写。 当字符串中的字母为小写时,它将变为大写。 例如:“彼得”将转换为“彼得” 问题: 我不明白为什么我的代码以“Peter”而不是“Peter”结尾 函数交换(str){ 变量名称=“” 对于(i=0;i='a'&&str[i]来说,这是有效的: 函数交换(str){ 变量名称=“” 对于

我是Javascript的初学者。
我试图制作一个函数,将字符串转换为大写或小写。 但我不明白为什么它能获得预期的产出。 以下是我的函数用途和代码。谢谢

  • 功能用途:
  • W当字符串中的字母为大写时,它将变为小写。 当字符串中的字母为小写时,它将变为大写。 例如:“彼得”将转换为“彼得”

  • 问题:
  • 我不明白为什么我的代码以“Peter”而不是“Peter”结尾

    函数交换(str){
    变量名称=“”
    对于(i=0;i='a'&&str[i]来说,这是有效的:

    函数交换(str){
    变量名称=“”
    
    对于(i=0;i='a'&&str[i]我已经更改了您的代码,但现在应该可以工作了

    函数交换(str){
    变量名称=“”
    var lowers=“abcdefghijklmnopqrstuvxyz”;
    
    对于(i=0;i使用reduce累积新字符串和小写/upercase JS函数来检查字母,然后进行转换

    const swap=(str)=>str.split(“”)。reduce((acc,char)=>
    acc+=char===char.toLowerCase()?char.toUpperCase():
    char.toLowerCase(),“”)
    
    console.log(swap('Peter'))
    我认为您的问题是str[I].toUpperCase()或str[I].toLowerCase()会更改str[I]的值,但不会更改。这些函数会将char值更改为大写或小写,它们会返回函数调用的结果,但会返回原始变量(str[I])将保持其价值

    请尝试使用此版本:

    函数交换(str){
    变量名称=“”
    var字符串;
    
    for(i=0;i字符串在JS中是不可变的,因此执行
    str[i].toUpperCase()操作
    不会将字符串中的第i个字母改为大写,相反,它会返回大写版本,您可以用它来构建一个新字符串。这能回答您的问题吗?@NickParsons非常感谢!我知道我的问题所在。@Harmandepsingkalsi是的!!这对我很有帮助,很抱歉我以前没有找到这个有用的答案。谢谢!您是r没错!我想它会改变原来的str[I]值,但我忽略了字符串在JS中是不可变的。谢谢!我知道问题出在哪里了。
    function name(str){
      let newArr = str.split('')
      let output = [];
      for(let x of newArr){
        output.push(x.toUpperCase());
      }
      return output.join('');
    }
    
    name('hello')