反字符串情况(javascript)

时间:2016-01-27 03:05:01

标签: javascript string

我正在尝试编写一个函数,它接受字符串并将所有小写字母更改为大写,反之亦然。 “较低的UPPER”将转换为“LOWER upper”

继承我所拥有的:

var convertString = function (str){
var s = '';
var i = 0;
while (i < str.length) {
    var n = str.charAt(i);
        if (n == n.toUpperCase()) {
            n = n.toLowerCase;
        }
        else {
            n = n.toUpperCase;
        }

 i +=1; 
 s += n;

}
return s;
};
convertString("lower UPPER");

我正在使用this website工作,并且输出了一个非常奇怪的消息。

Here is a pic of what happens after I run it.

2 个答案:

答案 0 :(得分:3)

除了Api.Loc.query(function(res) { var resArray = res; if(resArray && resArray.length == 0){ $scope.addErrorAlert("Services are currently not responding.Please try again later.",true); return; } 声明内部之外,您几乎所有内容都是正确的。您将if设置为等于ntoLowerCase 方法,而不是其返回值。您需要调用这些方法并将toUpperCase设置为等于其返回值:

n

您获得的输出(var convertString = function (str) { var s = ''; var i = 0; while (i < str.length) { var n = str.charAt(i); if (n == n.toUpperCase()) { // *Call* toLowerCase n = n.toLowerCase(); } else { // *Call* toUpperCase n = n.toUpperCase(); } i += 1; s += n; } return s; }; convertString("lower UPPER"); )是每个方法转换为字符串,然后连接到结果字符串的结果。您可以通过在控制台中运行以下任一命令来实现相同的结果:

  • 'function toUpperCase() { [native code] }...
  • console.log("".toUpperCase);

两者的结果均为console.log("".toUpperCase.toString());

快乐的编码!

答案 1 :(得分:0)

使用 ES6 语法:

您可以使用 JavaScript 必须提供的 ES6 功能来减少源代码:

const convertString = str => [...str].map(char => char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase()).join('');

console.log(convertString("lower UPPER"));