题给错了,(‘abCd’, ‘even’)应该返回 return aBCD。
function changeStringCase(source, position) {
//由于字符串一经声明并赋值是不会变更的,因此将结果先保存入字符数组再在返回时转换为字符串
var charArray = [];
for (var i = 0; i < source.length; i++) {
if ((position == "odd" && (i % 2 == 0)) || (position == "even" && (i % 2 == 1))) {
charArray.push(changeCharCase(source[i]));
} else {
charArray.push(source[i]);
}
}
return charArray.join("");
}
function changeCharCase(sourceChar) {
//取得char的ASCII码值
var charCode = sourceChar.charCodeAt();
if (65 <= charCode && charCode <= 90) {
//如果是大写字符
charCode += 32;
} else if (97 <= charCode && charCode <= 122) {
//如果是小写字符
charCode -= 32;
}
return String.fromCharCode(charCode);
}
document.write(changeStringCase("abCd", "odd"));