Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] No funciona encriptador

Buenos días, me permito pedir ayuda con este desafío lo he revisado muchas veces, lo rehice y cambia los parametros de entrada, le puse consola a lo que se me ocurrio para ver el paso a paso del codigo pero no doy con mi error por fa si alguien puede darme una manito se lo agradezco mucho de ante mano feliz día.

console.log("Hola mundo");

//constantes que llaman al id del index
const campoTexto = document.querySelector("#texto-resive");
const campoEncriptado = document.querySelector("#mensaje-texto-encriptado");

let matrizEncriptador = [
    ["e","enter"], ["i","imes"], ["a","ai"], ["o","ober"], ["u","ufat"],
];

function btnEncriptado (){
    //envio el texto a encriptar y lo saco en consola
    const texto = encriptador(campoTexto.value);
    console.log(texto);
    campoEncriptado.value = texto; 
}

function encriptador(textoEncriptado){
    textoEncriptado = textoEncriptado.toLowerCase();
    //siclo que recorre mi array que solo cuenta la columna de la matriz
    for (let i = 0; i < matrizEncriptador.length; i++){
        //evalua el texto que lee enviado en la funsión botonEncriptado pasando cada letra en la posicion 0 del array
        if(textoEncriptado.includes(matrizEncriptador[i],[0])){
           //el atributo .includes lee el caracter mientras que el .replaceAll lo cambia la letra por la cadena de caracteres
            textoEncriptado = textoEncriptado.replaceAll(
                matrizEncriptador[i][0],
                matrizEncriptador[i][1]
            );
        }
    }
    return textoEncriptado;
}


function btnDesncriptado (){
    //envio el texto a encriptar y lo saco en consola
    const textoEnviado = desencriptador(campoTexto.value);
    console.log(textoEnviado);
    campoEncriptado.value = textoEnviado; 
    
}

function desencriptadorencriptador(textoDesncriptado){
    textoDesncriptado = textoDesncriptado.toLowerCase();
    //siclo que recorre mi array que solo cuenta la columna de la matriz
    for (let i = 0; i < matrizEncriptador.length; i++){
        //evalua el texto que lee enviado en la funsión botonEncriptado pasando cada letra en la posicion 0 del array
        if(textoDesncriptado.includes(matrizEncriptador[i],[1])){
           //el atributo .includes lee el caracter mientras que el .replaceAll lo cambia la letra por la cadena de caracteres
           textoDesncriptado = textoDesncriptado.replaceAll(
                matrizEncriptador[i][1],
                matrizEncriptador[i][0]
            );
        }
    }
    return textoDesncriptado;
}

aqui va el index por si algo

<!DOCTYPE html>
<html lang="es">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <link rel="stylesheet" href="reset.css">
   <link rel="stylesheet" href="style.css">
   <title>Encriptador de texto</title>
</head>
<body>
   <main class="main">
       <section>
           <textarea id="texto-resive" class="campo-texto-resive" pbotlaceholder="llega-texto">
           </textarea>
           <div class="btn">
               <button class="boton-encripta" onclick="btnEncriptado()" >Encriptar</button>
               <button class="boton-traduce" onclick="btnDesncriptado()" >Decifrar</button>
           </div>
       </section>
       <section class="texto-encriptado" >
           <textarea id="mensaje-texto-encriptado" class="campo-texto-encriptado"></textarea>
       </section>
   </main>
   <script src="encripta.js"></script> 
</body>
</html>

gracias nuevamente

2 respuestas
solución!

Hola Stiven,

¡Buenos días! Entiendo que estás teniendo problemas con tu encriptador de texto. Revisé tu código y encontré un par de errores que podrían estar causando el problema.

En la función desencriptadorencriptador, parece haber un error de escritura en el nombre de la función. Debería llamarse desencriptador. Te sugiero que cambies el nombre de la función para que coincida con el que estás llamando en el botón de descifrado.

Además, en la línea donde estás comprobando si el texto contiene la letra encriptada, estás pasando incorrectamente los parámetros a la función includes. En lugar de textoDesncriptado.includes(matrizEncriptador[i],[1]), deberías pasar solo el primer parámetro: textoDesncriptado.includes(matrizEncriptador[i][1]).

Aquí está el código corregido:

function desencriptador(textoDesncriptado){
    textoDesncriptado = textoDesncriptado.toLowerCase();
    //siclo que recorre mi array que solo cuenta la columna de la matriz
    for (let i = 0; i < matrizEncriptador.length; i++){
        //evalua el texto que lee enviado en la funsión botonEncriptado pasando cada letra en la posicion 0 del array
        if(textoDesncriptado.includes(matrizEncriptador[i][1])){
           //el atributo .includes lee el caracter mientras que el .replaceAll lo cambia la letra por la cadena de caracteres
           textoDesncriptado = textoDesncriptado.replaceAll(
                matrizEncriptador[i][1],
                matrizEncriptador[i][0]
            );
        }
    }
    return textoDesncriptado;
}

Espero que esto solucione el problema. Si sigues teniendo dificultades, no dudes en preguntar. ¡Buena suerte con tu encriptador de texto!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

siii!!!, muchas gracias si era eso.