Estoy tratando de averiguar por qué mi salida no es correcta, funciona un poco, pero todavía tiene algunas fallas en el ciclo que parece que no puedo encontrar por qué. Sé que hay mejores formas de hacer esto, pero quiero saber qué salió mal en este bucle.
Entonces, primero haga una oración, la segunda pregunta es reemplazar 2 letras como: ae, la tercera pregunta es reemplazarla con como: ou
Luego dividí los caracteres y puse la oración en una matriz. El ciclo verifica cada letra en la matriz y si encuentra una de las letras, debe reemplazarla con la que encontró.
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))Tus condiciones if están estructuradas así:
if if elseEsto significa que tienes dos bloques if else. Entonces, independientemente de lo que suceda en el primer bloque, el segundo bloque siempre se verificará y se ejecutará una de las últimas condiciones.
Necesitas un if-else. Entonces, en un momento solo se ejecuta una de las tres condiciones.
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))También está ejecutando una iteración menos del bucle. Arreglado eso.