我正在尝试编写一个函数,该函数接受字符串并将所有小写字母更改为大写字母,反之亦然。“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");
Run Code Online (Sandbox Code Playgroud)
我正在使用这个网站工作,并且输出了一条非常奇怪的消息。
除了在您的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");
Run Code Online (Sandbox Code Playgroud)
您获得的输出 ( 'function toUpperCase() { [native code] }...) 是每个方法被转换为字符串的结果,然后连接到您的结果字符串。您可以通过在控制台中运行以下任一命令来获得相同的结果:
console.log("".toUpperCase);console.log("".toUpperCase.toString());两者的结果都是function toUpperCase() { [native code] }。
快乐编码!
| 归档时间: |
|
| 查看次数: |
3123 次 |
| 最近记录: |