Javascript 替换字符串中的多个字母

Javascript 替换字符串中的多个字母,javascript,replace,charat,Javascript,Replace,Charat,您好,我想比较两个字符串,并将字符串B中的所有小写字母(即字符串A中的大写字母)转换为大写,我的代码的问题是它只会像这样更改最后一个字母 vari; var x; 功能切换ITUP(前、后){ 对于(i=0;i

您好,我想比较两个字符串,并将字符串B中的所有小写字母(即字符串A中的大写字母)转换为大写,我的代码的问题是它只会像这样更改最后一个字母

vari;
var x;
功能切换ITUP(前、后){
对于(i=0;i开关(“HiYouThere”、“biyouthere”)您必须分配每个更改。它正在工作

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");
vari;
var x;
功能切换ITUP(前、后){
对于(i=0;i
我已正确修改了您的代码以使其正常工作。您需要在每个循环中将该操作应用于相同的变量x,而不是after

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);
}
功能切换ITUP(前、后){
var x=之后;
对于(i=0;i
这是代码:

功能切换ITUP(前、后){
for(var i=0;idocument.body.innerHTML+='

'+after+'

'预期输出应为HiYouThere或BiYouThere?我预期为BiYouThere OK。然后在开始循环之前将“after”的值赋值给x,并仅在循环内部使用x,而不是“after”。它可以工作,但在控制台中多次显示字符串(对于每次迭代),仅在循环外部打印。它可以工作,但在控制台中多次显示字符串(对于每次迭代)没问题,它只是迭代循环中的一个console.log:)基于

之后的
修改
x
,然后将
之后的
设置回
x
似乎非常笨拙。这与仅仅说
after=after.replace…
?是有什么区别/更好呢?是的..似乎..为了他们的错误的更好点..我做了..谢谢你的建议..它可以工作,但它在控制台中多次显示字符串(对于每次迭代),它只为我显示一次迭代:为什么要引入另一个名为
x
的变量?此外,如果第一个字符串中的对应字符是数字,则这会将第二个字符串中的所有字符转换为大写。