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

Javascript - Transfer all letters in string into uppercase or lowercase

我是 Javascript 的初学者。
我试图将关于隐蔽字符串的函数转换为大写或小写。 但是我很困惑为什么它能得到预期的输出。 以下是我的功能目的和codes.Thank你!

  1. 函数用途:

W 当字符串中的字母为大写时,将变为小写。 当字符串中的字母为小写时,它将变为大写。 例如:“Peter”将转为“pETER”

  1. 问题:

我不明白为什么我的代码以“Peter”而不是“pETER”结尾

function swap(str) {
  var name = ''
  for (i = 0; i <= str.length - 1; i++) {
    if (str[i] >= 'a' && str[i] <= 'z') {
      str[i].toUpperCase()
    } else {
      str[i].toLowerCase()
    }
    name += str[i]
  }
  return name
}

console.log(swap('Peter'))

不知道是不是这一行的问题

if(str[i] >= 'a' && str[i] <= 'z'){
  str[i].toUpperCase()
}

谁能帮帮我,谢谢!!

这个有效:

function swap(str) {
  var name = ''
  for (i = 0; i <= str.length - 1; i++) {
    if (str[i] >= 'a' && str[i] <= 'z') {
      name += str[i].toUpperCase()
    } else {
      name += str[i].toLowerCase()
    }
  }
  return name
}

console.log(swap('Peter'))

我已经更改了您的代码,但现在应该可以使用了

function swap(str) {
      var name = ''
      var lowers = "abcdefghijklmnopqrstuvwxyz";
      for (i = 0; i <= str.length - 1; i++) {
        if (lowers.includes(str[i])) {
          name +=str[i].toUpperCase()
        } else {
          name +=str[i].toLowerCase()
        }
      }
      return console.log(name);
    }
swap("Peter");

使用 reduce 来累积你的新字符串和 lowercase/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 值更改为大写或小写,它们将 return 函数调用的结果,但原始变量 (str[i]) 将保持其值。

试试这个版本:

function swap(str) {
  var name = ''
  var string;
  for (i = 0; i <= str.length - 1; i++) {
    string = str[i];  
    if (str[i] == string.toUpperCase()) {
      name += string.toLowerCase();
    } else {
      name += string.toUpperCase();
    }
  }
  return name;
}

console.log(swap('PeTeR'));

function name(str){
  let newArr = str.split('')
  let output = [];
  for(let x of newArr){
    output.push(x.toUpperCase());
  }
  return output.join('');
}

name('hello')