JavaScript с jQuery-скриптом не загружается - PullRequest
0 голосов
/ 17 января 2019

Мой скрипт с jQuery не загружается, и когда я нажимаю кнопку вычисления, он ничего не делает (неудивительно). Я ЗНАЮ, что скопировал и вставил jQuery в виде жесткого кода в файл; это намеренно, так как я хочу, чтобы файл запускался в автономном режиме, когда я обычно запускаю его. Также намеренно я создал персональную консоль, поскольку я обычно работаю над этим на школьном ноутбуке, потому что именно тогда мне скучно, и они отключили консоль разработчика.

Это не jQuery, который не загружается, хотя; Я был в состоянии запустить это раньше.

Я пытался проверить код, но для меня он просто сломан. Однако до того, как скрипт не загрузился, я думаю, что где-то есть бесконечный цикл, потому что согласно диспетчеру задач, когда скрипт загружается и нажимается кнопка вычисления, страница зависает, но процессор работает как сумасшедший. Я понятия не имею, что может быть причиной всего этого, пожалуйста, помогите!

Я знаю, что другие люди, вероятно, уже сделали это, и что, вероятно, есть много других лучших способов сделать то, что я хочу сделать, так что, пожалуйста, помните, что я делаю это для развлечения, но я собирался В свободное время я довольно долго ничего не нашел, так что либо я действительно тупой, либо код неработоспособен, и его нужно переписать.

Предполагается, что предел максимального числа, которое может понять язык, должен быть увеличен с 54 до 54 миллиардов цифр. Однако, как указано в летописи, скрипт не загружается.

<span id="console"></span>
<form>
    <input type="radio" id="add" name="mathtype" checked="checked"> Addition (in devolopment)<br>
    <input type="radio" id="sub" name="mathtype"> Subtraction (Unavailible)<br>
    <input type="radio" id="multi" name="mathtype"> Multiplication (Unavailible)<br>
    <input type="radio" id="div" name="mathtype"> Division (Unavailible)
</form>
<br>
Number: <input type="text" id="input1">
<br>
Number: <input type="text" id="input2">
<br>
<span id="extraInputs"></span>
<button id="addInput">Add another input field</button>
<br>
<button id="calc">Calculate...</button>
<br>
<br>
<p id="output">Press "Calculate..."</p>

<script>/*This is where I load the jQuery*/</script>

<script>
    document.getElementById("console").innerHTML("<div class='info'>Script ran</div>");
    "use strict";
    $(document).ready(function(){
        try {
            var page = $("#console");
            var log = function(message) {
                page.append('<div class="log">'+message+'</div>');
            };
            var info = function(message) {
                page.append('<div class="info">'+message+'</div>');
            };
            var warn = function(message) {
                page.append('<div class="warn">'+message+'</div>');
            };
            var error = function(message) {
                page.append('<div class="error">'+message+'</div>');
            };
            log("Doc and console up");
        } catch(err) {
            document.getElementById("console").innerHTML("<div class='error'>ERROR WITH LAUNCHING CONSOLE.</div>");
        }

        try {
            var inputBoxes = 2;

            var add = function(num1, num2) {
                log("Running add");
                var neg = [0, false, false];

                num1 = num1.split("-");
                num2 = num2.split("-");
                log(num1);
                log(num2);

                if(num1.length == 2) {
                    num1 = num1[1];
                    neg[1] = true;
                } else {
                    num1 = num1.toString();
                }
                if (num2.length == 2) {
                    num2 = num2[1];
                    neg[2] = true;
                } else {
                    num2 = num2.toString();
                }

                log(num1);
                log(num2);
                info(neg);

                var isNeg = false;

                if(((neg[1] || neg[2]) && (neg[1]!=neg[2])) == true) {
                    isNeg = true;
                }
                log(neg);

                num1 = num1.split('');
                num2 = num2.split('');
                log(num1);
                log(num2);

                var maxChar = Math.max(num1.length, num2.length);
                log(maxChar);

                if(maxChar > num1.length) {
                    for(var i=0;i<maxChar-num1.length;i++) {
                        num1.unshift("0");
                    }
                } else if (maxChar > num2.length) {
                    for(var i=0;i<maxChar-num1.length;i++) {
                        num2.unshift("0");
                    }
                }

                var final = [];
                var time;
                var carry = 0;

                for (var i=maxChar; i>0;i--) {
                    if(time != i++) {
                        carry = 0;
                    }

                    final[i] = (parseInt(num1[i]) + parseInt(num2[i]) + parseInt(carry)).toString();

                    if(parseInt(final[i]) > 9) {
                        var temp = final[i].split('');
                        final[i] = temp[1];
                        carry = temp[0];
                        time = i;
                    }
                }

                if(isNeg){
                    final.unshift("-");
                }

                info(final.join());
                return final.join();
            };

            $("button#addInput").click(function(){
                inputBoxes++;
                $("#extraInputs").append('Number: <input type="text" id="input'+inputBoxes+'"><br>');
            });

            $("#calc").click(function(){
                info("Checking conditions...");
                if ($("#add").is(":checked")) {
                    info("Running...");
                    info($("#input1").val());
                    info($("#input2").val());

                    var final = add($("#input1").val(), $("#input2").val());
                    info("Ran");
                    if (inputBoxes > 2) {
                        info("inputBoxes: "+inputBoxes.toString());
                        for (var i=3; i<inputBoxes; i++) {
                            final = add(final, $("#input"+i.toString()).val());
                        }
                    }
                    info(final);
                    $("#output").text(final));
                }
                log("Functions up");
            });
        } catch(err) {
          error(err);
        }
    });
</script>

Требуется любое количество чисел и их добавление (а также, в конечном итоге, и другие вещи), если количество символов результата меньше или равно наибольшему числу, которое может понять язык.

1 Ответ

0 голосов
/ 18 января 2019

Я не знаю, что делает ваш код, но у вас определенно есть бесконечный цикл:

for (var i=maxChar; i>0;i--) {
    if(time != i++) {
        carry = 0;
    }

На каждой итерации цикл for будет уменьшаться i на 1, но вы такжеувеличивая его на единицу, он будет сохранять то же значение, и цикл никогда не завершится.Я полагаю, вы действительно хотели проверить if (time != i+1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...