Как способствование тому, чтобы for был SÍCRONO, для того, чтобы функцию не выполнила неряшливая женщина

Привет я делаю программу, что encripta и desencripta простой текст (без места), и в encriptar мой текст, как азбука, меня возвращает encriptación с правильными но неряшливыми символами, например, если encripto он "привет" возвращает меня "krod", и если desencripto "krod" он возвращает меня "hloa", не, если я объяснился хорошо. Я надеюсь, что они могут помогать мне!

Hello, I am doing в program that encrypts and decrypts простой text (without space), and when I encrypt my text according to the alphabet, it returns я the encryption with correct but messy characters, for example if encrypted "hello" returns "krod" and if decrypted "krod" returns "hloa", I don't know if it explains well to я. I hope you хан help я!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <script>
        
        var abc=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];

        function encri(element){
            for (let i = 0; i < element.length; i++) {
                var letra = element.charAt(i);
                var posicion = abc.indexOf(letra);
                if (posicion == 23) {
                    element = element.replace(letra,abc[posicion-23]);
                }
                if (posicion == 24) {
                    element = element.replace(letra,abc[posicion-23]);
                }
                if (posicion == 25) {
                    element = element.replace(letra,abc[posicion-23]);
                }
                else{
                    element = element.replace(letra,abc[posicion+3]);
                }
                
            }
            return element;
        };

        function desencri(element){
            for (let i = 0; i < element.length; i++) {
                var letra = element.charAt(i);
                var posicion = abc.indexOf(letra);
                if (posicion == 0) {
                    element = element.replace(letra,abc[posicion+23]);
                }
                if (posicion == 1) {
                    element = element.replace(letra,abc[posicion+23]);
                }
                if (posicion == 2) {
                    element = element.replace(letra,abc[posicion+23]);
                }
                else{
                    element = element.replace(letra,abc[posicion-3]);
                }
            }

            return element;
        };


        function encriptar(elemento){
            var palabra = document.getElementsByTagName("input")[0].value;
            var palabra_codificada = encri(palabra);
            document.getElementById("resultado").innerHTML = palabra_codificada;
        };

        function desencriptar(elemento){
            var palabra = document.getElementsByTagName("input")[0].value;
            var palabra_decodificada = desencri(palabra);
            document.getElementById("resultado").innerHTML = palabra_decodificada;
        };
    </script>
    <h1 id="titulo">Bienvenido al Encriptador de letras</h1>
    <input type="text" placeholder="Escriba su texto sin espacios..." id="caja"> <br>
    <button type="submit" onclick="encriptar()" class="btn-encri">Encriptar</button> 
    <button type="submit" onclick="desencriptar()" class="btn-desencri">Desencriptar</button> 
    <p id="resultado">Aquí aparecera su resultado.</p>
</body>
</html>
0
задан 01.11.2019, 08:29
1 ответ

желанный. Твоя проблема не имеет общее с sincronГ - в, а с mГ©todo "повторно нравься" prototype string. Так как он ищет первый характер, который он включает.

Для одной soluciГіn простая, только ты нуждаешься в том, чтобы добавить переменную mГЎs для того, чтобы был приложен результат, и asГ - не necesitarГ-схватывай заменять.

TambiГ©n замечает, что quitГ© условия и они unГ - с & &

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <script>

        let abc=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
        let result = ""
        function encri(element){
            for (let i = 0; i < element.length; i++) {
                let letra = element.charAt(i);
                let posicion = abc.indexOf(letra);
                if (posicion >= 23 && posicion <=25) {
                    element = element.replace(letra,abc[posicion-23]);
                    result = result + abc[posicion-23]  
                }
                else{
                    element = element.replace(letra,abc[posicion+3]);
                    result = result + abc[posicion+3]  
                }

            }
            return element;
        };

         function desencri(element){
           let result = ""
            for (let i = 0; i < element.length; i++) {
                let letra = element.charAt(i);
                let posicion = abc.indexOf(letra);
                if (posicion >= 0 && posicion<=2) {
                    element =  element.replace(letra,abc[posicion+23]);
                }
                else{
                    element =  element.replace(letra,abc[posicion-3]);
                    result = result + abc[posicion-3]                          
                }
            }

            return result;
        };


        function  encriptar (elemento){
            let palabra = document.getElementsByTagName("input")[0].value;
            let palabra_codificada = encri(palabra);
            document.getElementById("resultado").innerHTML = palabra_codificada;
        };

         function desencriptar(elemento){
            let palabra = document.getElementsByTagName("input")[0].value;
            let palabra_decodificada =  desencri(palabra);
            document.getElementById("resultado").innerHTML = palabra_decodificada;
        };
    </script>
    <h1 id="titulo">Bienvenido al Encriptador de letras</h1>
    <input type="text" placeholder="Escriba su texto sin espacios..." id="caja"> <br>
    <button type="submit" onclick="encriptar()" class="btn-encri">Encriptar</button>                  
0
ответ дан 01.12.2019, 14:41
  • 1
    Большое спасибо! я sirvió много, ahí упорядочьте cositas, как помещение первого let result =" "; внутри функции для того, чтобы стоимость вновь была vací или, y tambié n добавлять result + = abc [положение] к desencriptar. Но совсем очень довольно большое спасибо! – Vicente Ignacio Muñoz Zamora 08.11.2019, 02:00

Теги

Похожие вопросы