gpt4 book ai didi

javascript - while() 循环无限期地运行;条件不会改变; .replace() 无法按预期工作

转载 作者:行者123 更新时间:2023-12-02 22:06:23 27 4
gpt4 key购买 nike

我正在尝试将字母替换为空格 " "在一个单词中使用以下 JS 代码:

let letter = document.querySelector("#letter").value.toLowerCase();
var word = "letters";
var i = word.indexOf(letter);
console.log("word[i]: " + word[i]);
while(i > -1) {
console.log(i);
word.replace(word[i], " ");
console.log("word: " + word);
i = word.indexOf(letter);
console.log(i);
}
console.log("word after: " + word);

问题i保持2并且不会改变。 word.replace(word[i], " ");似乎没有完成它的工作。

我认为循环是这样的:

  • 比方说lettert
  • var i首先将是 2
  • word.replace(word[i], " ");将替换 word[2] 处的字符有空格
  • word将变成le ters
  • i = word.indexOf(letter);然后会找到下一个t3
  • word.replace(word[i], " ");将替换 word[] 处的字符有空格
  • word将变成le ers
  • 现在i应该变成-1因为已经没有了tword并退出while循环

问题是它不是那样工作的。 while循环无限期地运行并且 i停留 2。

问题是什么?

最佳答案

您可以使用正则表达式/t/g

检查片段:

//let replace = document.querySelector("#letter").value.toLowerCase();
var replace = "t";
var re = new RegExp(replace,"g");

var original_text="letters";
var extracted_text = original_text.replace(re, ' ');
console.log(extracted_text);

关于javascript - while() 循环无限期地运行;条件不会改变; .replace() 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59703091/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com