我有一个以下简单的功能:
function shiftCase2(string) {
temp = string.split('');
temp.map(function(x) {
if (x == x.toUpperCase()) {
x = x.toLowerCase();
}
if (x == x.toLowerCase()) {
x = x.toUpperCase();
}
})
temp = temp.join("");
console.log(temp);
}
Run Code Online (Sandbox Code Playgroud)
它应该遍历数组的每个元素,如果字符是大写,则将其更改为小写,反之亦然.比如shiftCase2("TEST string to USE");应该给我回来"test STRING TO use".
我无法弄清楚为什么它不起作用,只是将我的输入返回给我未经修改?
.map()是一种所谓的纯粹功能.这意味着它不会修改您的输入,而是会生成新的输出.
你必须这样做:
temp = temp.map(function(x) {
if (x == x.toUpperCase()) {
return x.toLowerCase();
}
if (x == x.toLowerCase()) {
return x.toUpperCase();
}
})
Run Code Online (Sandbox Code Playgroud)
我建议查看文档以了解它是如何工作的.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |