【问题标题】:replacing letters in a loop fault在循环错误中替换字母
【发布时间】:2021-11-18 10:21:34
【问题描述】:

我试图弄清楚为什么我的输出不正确,它有点工作,但循环中仍然存在一些错误,我似乎无法找到原因。我知道有更好的方法可以做到这一点,但我想了解这个循环中出了什么问题。

所以首先它问一个句子 第二个问题是替换 2 个字母,例如:a e 第三个问题是用like替换它:o u

然后我拆分 karakters 并将句子放入一个数组中。 循环检查数组中的每个字母,如果遇到其中一个字母,则应将其替换为找到的字母。

var input = prompt("geef een zin ?");
var zin = [];
zin = input.split("");
var inn = prompt("welke karakters wil je veranderen?");
var karaktersinn = inn.split("");
var outt = prompt("in welke letters wil je ze veranderen?");
var karatersout = outt.split("");
var output = "";
console.log(input);


for (var i = 0;i < input.length-1;i++){
   if (zin[i] == karaktersinn[0]){
      output += karatersout[0]

   }if (zin[i] == karaktersinn[2]){
      output += karatersout[2]
   }else{
      output += zin[i];
   }
}

console.log(output);
console.log(zin)
console.log(karaktersinn)
console.log((karatersout))

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: javascript arrays loops for-loop if-statement


【解决方案1】:

你的 if 条件结构如下:

if 

if 

else

这意味着你有两个 if else 块。所以不管第一个块发生了什么,都会检查第二个块,最后一个条件会运行

你需要一个 if-else。因此,一次只有三个条件之一运行。

var input = prompt("geef een zin ?");
var zin = [];
zin = input.split("");
var inn = prompt("welke karakters wil je veranderen?");
var karaktersinn = inn.split("");
var outt = prompt("in welke letters wil je ze veranderen?");
var karatersout = outt.split("");
var output = "";
console.log(input);


for (var i = 0;i < input.length;i++){
   if (zin[i] == karaktersinn[0]){
      output += karatersout[0]

   }else if (zin[i] == karaktersinn[2]){
      output += karatersout[2]
   }else{
      output += zin[i];
   }
}

console.log(output);
console.log(zin)
console.log(karaktersinn)
console.log((karatersout))

此外,您正在少运行一次循环迭代。解决了这个问题。

【讨论】:

  • 当然难怪它不起作用谢谢。
  • 当然。如果对您有帮助,请接受/支持答案
  • 我试过了,但我没有足够的声誉来做这个对不起。
猜你喜欢
  • 1970-01-01
  • 2016-10-26
  • 2021-01-05
  • 2012-01-11
  • 2019-05-31
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
  • 2012-09-06
相关资源
最近更新 更多