【发布时间】:2018-09-22 22:18:30
【问题描述】:
你好这是我第一次使用这个网站,我做了一些关于如何将小写字母转换为大写字母的研究,但仍然填充。要求是检查是否“偶数”,将偶数位字母转换为不同的类型(从下到上或从上到下)。以下是我的代码:
function question4(str,pos)
{ var newLetter;
var kkk=str;
if (pos='even')
{
for (var i=0;i<str.length;i=i+2)
{
if (str[i].toString()==str[i].toString().toUpperCase())
{
newLetter=str[i].toString().toLowerCase();
kkk[i]=newLetter;
}else
{
newLetter=str[i].toUpperCase();
kkk[i]=newLetter;
}
}
}else if (pos='odd')
for ( i=0;i<str.length;i=i+2)
{
if (str[i]===str[i].toLowerCase())
{
alert('3');
}else if (str[i]===str[i].toUpperCase())
{
alert('4');
}
}
return kkk;
}
要求是:编写一个函数,根据与pos参数函数的值匹配的位置来改变字符串中所有字符的大小写。函数(str,pos [偶数|奇数])。示例 ((‘abCd’, ‘odd’) 返回 Abcd)
更新:现在我已经让“奇数”条件起作用了,但是“甚至”仍然不起作用,任何人都可以看看为什么?
function question4(strr,pos) {
var result ;
var sum="";
var aaa;
for (var i = 0; i <= strr.length - 1; i = i + 1)
{
if (pos == "odd"&&i%2==0)
{ aaa=strr.charCodeAt(i);
if (aaa >= 65 && aaa <= 90 )
{
result = String.fromCharCode(aaa + 32);
} else
result = String.fromCharCode(aaa - 32);
}
else if (pos == "even"&&i%2==1)
{
if (aaa >= 65 && aaa <= 90 )
{
result= String.fromCharCode(aaa + 32);
} else
result = String.fromCharCode(aaa - 32);
}else result=strr[i];
sum+=result;
}
return sum;
}
【问题讨论】:
-
那么这段代码可以工作吗?你还没有说明错误是什么。
-
你确定 ('abCd', 'odd') 返回 Abcd 吗?我的意思是,
a的索引是 0 而不是 1 -
我使用了我的函数,它从不改变字符串.....
-
没关系,只要这个能用,我可以调整位置,但问题是这个功能根本不起作用,如果存在任何逻辑问题,我会感到困惑
-
这不是c;字符串是不可变的
标签: javascript