我正在尝试编写一个函数,它接受字符串并将所有小写字母更改为大写,反之亦然。 “较低的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工作,并且输出了一个非常奇怪的消息。
答案 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
设置为等于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());
。
快乐的编码!
答案 1 :(得分:0)
您可以使用 JavaScript 必须提供的 ES6 功能来减少源代码:
const convertString = str => [...str].map(char => char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase()).join('');
console.log(convertString("lower UPPER"));