如何完成此循环?连接前面的两个字符
How do I finish this loop? Concatenate two previous characters
我正在制作一个函数,当您给它一个字符串时,它将返回偶数字符的大写和奇数字符的小写。所以如果你给它"HELLO",它就会给你"HeLlO"。这显然是错误的,因为它仅适用于前两个字符。如何完成循环,使其不会一直将字符串连接在一起?
function evenOddChange(source)
{
var i;
var result;
i = 0;
result = "";
while ( i < (source.length))
{
result = result + source.toUpperCase().charAt(i) + source.toLowerCase().charAt(i + 1);
i = i + 1;
}
return result;
}
您可以使用
modulo
来检查其even
还是Odd
。
function evenOddChange(source)
{
var i;
var result;
i = 0;
result = "";
while ( i < (source.length))
{
if(i%2==0){
result = result + source.toUpperCase().charAt(i);
}else{
result = result + source.toLowerCase().charAt(i);
}
i = i + 1;
}
return result;
}
只需使用模数来查找索引是奇数还是偶数,然后使用括号表示法。
function evenOddChange(source) {
var i = 0, result = "";
while (i < source.length)
result += source[i][i++ % 2 == 0 ? "toUpperCase" : "toLowerCase"]();
return result;
}
请注意,当我们做i++ % 2
时,模运算符在我们递增之前对i
的值进行操作。增量效果只会在下一次迭代中感受到。
递增 2,而不是 1:
i = i + 2;
不是你正在改变i
和i+1
,只增加一个将覆盖i+1
变化。这个简单的更改将解决您的问题。
相关文章:
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- 如果两个跨度有数据,则添加字符
- 如何在jQuery中搜索两个字符之间的字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 电子邮件验证不接受仅包含两个字符的域
- 如何完成此循环?连接前面的两个字符
- 如何使用jQuery获取url的最后两个字符
- Javascript-使用Regex获取两个字符之间的字符
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 通过JQuery在网页上的两个字符之间放置空格
- 如果两个波浪号字符之间的字符计数大于60,则在两个波浪字字符之间添加波浪号
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 如何匹配两个字符内的重复模式
- 在javascript中组合使用连字符连接的两个字符串
- Regex/Javascript;否定地选择两个字符的重复
- 匹配单词中两个相等的字符,并替换为一个RE
- 正则表达式不匹配序列中的两个相同字符
- 如何提取两个字符之间的字符串
- 如何在 javascript 中替换两个声明字符之间的字符串