0

我是一个完全的初学者,我试图使用循环和if条件语句来完成这项工作,但它从来没有起过作用,我怀疑问题出在我的if条件中。

这是我的代码,提前感谢。

函数更改(a){对于(var i=0;i<a.length;i++){如果(a[i]===a[i].toUpperCase())否则,如果(a[i]==a[i].toLowerCase()){a[i]=a[i].toUpperCase(;}}控制台.log(a);}
6
  • 1
    是否要将字符串的所有字符转换为大写或小写? 评论 2016年3月10日21:04
  • 1
    字符串是不可变的。你不能那样做。 评论 2016年3月10日21:04
  • 1
    我明白了——如果它在上面,你就想要它在下面,反之亦然。知道了。 评论 2016年3月10日21:04
  • 是的,我想将所有大写字母转换为小写字母,并将所有小写字母转换为大写字母,以便HeLLo成为HeLLo 评论 2016年3月10日21:05
  • 1
    他的意思是你不能改变一个字符串,你需要创建一个新的字符串,但这不是问题 评论 2016年3月10日21:14

4个答案4

重置为默认值

正如@SLaks所提到的,javascript中的字符串是不可变的,这意味着您实际上无法更改其中的内容。相反,您可以创建一个新的空字符串并将其添加到

函数alter(字符串){var newString=“”for(var i=0;i<字符串长度;i++){newString+=string[i]===string[i].toUpperCase()?字符串[i].toLowerCase():字符串[i].toUpperCase(}返回newString}
0
2

var hello=“hello”;var newWord=[];对于(i=0;i<hello.length;i++){if(hello[i]==hello[i].toLowerCase()){newWord[i]=你好[i].toUpperCase();}其他{newWord[i]=你好[i].toLowerCase();}}alert(newWord.join(“”));

  • 非常感谢你,乔尔。我只是想知道为什么要将newWord创建为数组,然后将其联接,而不是将其创建为空字符串。这是否也与字符串是不可变的这一事实有关? 评论 2016年3月11日0:34
  • 1
    @MohamedHegazy字符串是不可变的,但bapibopi也是这样工作的。我只是选择了一个数组,其中每个字符都是一个元素,以展示另一种方法,因为在编码中总是有多种实现目标的方法。
    – 乔尔
    评论 2016年3月11日18:03
  • 是的,我理解这两种情况,实际上我必须艰难地学习编程有无限的方法来实现相同的目标。 评论 2016年3月11日18:08
0

let str='HelloWorld';let UPPER=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”,LOWER='abcdefghijklmnopqrstuvwxyz',res1=[],len=str.length;for(设i=0;i<len;i++){if(UPPER.indexOf(str[i])==-1)res1.push(str[i].toLowerCase())else if(LOWER.indexOf(str[i]!==-1))res1.push(str[i].toUpperCase())}console.log(“解决方案1:”+res1.join(“”))设res2=[];for(设i=0;i<len;i++){if(上部包含(str[i]))res2.push(str[i].toLowerCase())else if(LOWER.includes(str[i]))res2.push(str[i].toUpperCase())}console.log(“解决方案2:”+res2.join(“”))

0

只需使用ES6功能即可将大写字母转换为小写字母,反之亦然

const-caseToggler=(str)=>str.split(“”).map(item=>item==item.toUpperCase())?item.toLowerCase():item.toUpperCase(()).join(“”)console.log(caseToggler('ab1By'))

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.