我正在尝试编写一个函数,它接受字符串并将所有小写字母更改为大写字母,反之亦然。 “lower 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开始工作,并且输出了一条非常奇怪的消息。
最佳答案
除了 if
语句之外,您几乎所有内容都是正确的。您将 n
设置为其 toLowerCase
或 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());
两者的结果都是function toUpperCase() { [native code] }
。
编码愉快!
关于javascript - 反转字符串大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028105/