javascript - 在循环错误中替换字母
问题描述
我试图弄清楚为什么我的输出不正确它有点工作但在循环中仍然有一些错误我似乎无法找到原因。我知道有更好的方法可以做到这一点,但我想了解这个循环中出了什么问题。
所以首先它问一个句子第二个问题是替换 2 个字母 like : ae 第三个问题是用 like 替换它: ou
然后我拆分 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))
解决方案
您的 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))
此外,您正在运行循环的少一次迭代。解决了这个问题。
推荐阅读
- django - 多个用户使用 django-allauth 注册。两个注册表单未呈现
- ruby-on-rails - 默认 form_with 不远程也不期望通过 JS 响应
- angular - RxJS Angular - 将 Observable 的对象属性作为 Observable 传递
- c# - Blazor,将 0 值绑定属性填充为输入中的空字符串
- kotlin - 如何使用 mockito_kotlin 存根具有通用 KClass 参数的 Kotlin 方法?
- java - 跟踪企业中使用自定义 java 功能的用户数量
- javascript - 如何使浏览器后退按钮跳过内页导航并返回上一页
- .net - Zxing.Net 的条码阅读器
- ffmpeg - 如何在 H.264 中更改宏块的大小?
- javascript - 单独的数组并将其分配给角度中的不同参数