您好我希望比较两个字符串并且字符串B中的所有小写字母 - 字符串A-中的大写字母为大写字母,我的代码的问题是它只更改最后一个字母
var i;
var x;
function switchItUp(before, after) {
for (i = 0; i < before.length; i++) {
if (before.charAt(i) == before.charAt(i).toUpperCase()) {
x = after.replace(after.charAt(i), after.charAt(i).toUpperCase());
}
}
console.log(x);
}
switchItUp("HiYouThere", "biyouthere");
这将导致“biyouThere”以任何方式将其更改为“HiYouThere”?
答案 0 :(得分:0)
您必须分配每项更改。它现在正在工作
var i;
var x;
function switchItUp(before, after) {
for (i = 0; i < before.length; i++) {
if (before.charAt(i) == before.charAt(i).toUpperCase()) {
x = after.replace(after.charAt(i), after.charAt(i).toUpperCase());
after = x;
//console.log("inside"+x);
}
}
console.log(x);
}
switchItUp("HiYouThere", "biyouthere");
答案 1 :(得分:0)
我已正确修改您的代码以便工作。您需要在每个循环中将操作应用于相同的变量x,而不是之后。
function switchItUp(before, after) {
var x = after;
for (i = 0; i < before.length; i++) {
if (before.charAt(i) == before.charAt(i).toUpperCase()) {
x = x.replace(after.charAt(i), after.charAt(i).toUpperCase());
}
}
console.log(x);
}
答案 2 :(得分:0)
这是代码:
function switchItUp(before, after) {
for (var i = 0; i < before.length; i++) {
if (before.charAt(i) == before.charAt(i).toUpperCase()) {
after = after.replace(after.charAt(i), after.charAt(i).toUpperCase());
}
}
return after;
}
var after = switchItUp("HiYouThere", "biyouthere");
document.body.innerHTML+='<p style="color: black;">'+ after + '<p/>';
&#13;