首页 > 解决方案 > 无法将字符从一个字符串替换到另一个字符串 - 是 Javascript 错误吗?

问题描述

我正在尝试用另一个字符串替换一个字符串,但没有完全擦除第一个字符串的内容。就好像这是一种特殊效果,字符串的每个字母都被转换成另一个单词。起初我想像打字机一样做,但后来我想随机做。但是,我无法让它工作,它看起来像是一个错误。

let title1 = "Your sales place";
let title2 = "Software Hub";

var k = 0;
var speed = 150;

function typeWriter() {
  if (k < title1.length) {
    if (k >= title2.length) {
      title2 += title1.charAt(k);
    }
    title2 = title2.replace(title2.charAt(k), title1.charAt(k));
    document.getElementById("demo").innerHTML = title2;
    k += 1;
    setTimeout(typeWriter, speed);
  }
}

typeWriter();
<div id="demo"></div>

输出:

YO AESRL SUPLACE

标签: javascriptstring

解决方案


replace替换第一次出现的字符,不一定是 index 处的字符k

而不是 mutating title2,我建议简单地做

….innerHTML = title2.slice(0, k) + title1.slice(k);

推荐阅读