Tengo este ciclo for en el que intento reemplazar un índice en underlineArr con un carácter y cada vez que trato de redefinirlo guarda la variable actual para poder acceder a ella y cambiarla más tarde, no se guarda nada. , Sigue usando la matriz predeterminada mientras intento obtener la matriz recién editada.
Para bucle :
const content = collected.content.toLowerCase(); for (let i = 0; i < underlineArr.length; i++) { msg = underlineArr[i] = word[i] == content && underlineArr[i] == "_" ? content : "_"; } msg = underlineArr.join(" "); console.log(msg); Esta es la constante underlineArr : https://i.stack.imgur.com/vtzj2.png
Esta es la word constante: "French Toast" . Tenga en cuenta que la constante es aleatoria de una matriz que creé.
Por último, el contenido collected.content es solo una cadena devuelta.
La salida: Salida
Rendimiento esperado:
_ r _ _ _ _ _ _ _ _ _ _ _ re _ _ _ _ _ _ _ _ _ _ ren _ _ _ _ _ _ _ _ _ renc _ _ _ _ _ _ _ .....Intente obtener el índice de carácter de content en lugar de asignar la cadena completa.
for (let i = 0; i < underlineArr.length; i++) { underlineArr[i] = word[i] == content && underlineArr[i] == "_" ? content[i] : "_"; }¿Qué pasa con esto... tengo frío o calor en esa pregunta poco clara?
let word = "French Toast".split("") let underlineArr = Array(word.length).fill("_") let result = [] word.forEach((char,i) => { let row = [...underlineArr] row[i] = word[i] result.push(row) }) multiline = result.map(subarr => subarr.join(" ")).join("\n") console.log(multiline)No estoy seguro de lo que hice, pero estoy bastante seguro de que el código anterior que tenía no guardaría nada porque reemplazaría los valores guardados con _ y para solucionar esto,
for (let i = 0; i < underlineArr.length; i++) { if (content !== word.toLowerCase()[i]) continue; underlineArr[i] = word.toLowerCase()[i]; }