Возникли проблемы с отображением моего номера с помощью javascript - PullRequest
0 голосов
/ 14 февраля 2020

Мне нужно преобразовать из десятичной в двоичную форму, для этого требуется как минимум 3 функции, и она должна отображаться в HTML. Это то, что я до сих пор и не могу понять, как заставить его отображаться правильно?

// Prompt user for number between 1-1000
let input = parseInt(prompt("Enter a number between 1 and 1000", "50"));

function store() {
let quotient = [];
let answer = quotient.reverse();
return answer;
}
function check() {
    while (input != 0) {
        if (input < 1000 && input % 2 != 0) {
            return quotient.push("1");
            input = input / 2;
        }
        else if (input < 1000 && input % 2 == 0) {
            return quotient.push("0");
            input = input / 2;
        }
    }
}
function display() {
    document.getElementById("displayNumber").innerHTML = answer;
}
display();
<h1 id="displayNumber"></h1>

Ответы [ 4 ]

0 голосов
/ 14 февраля 2020

В функции отображения вы назначаете ответ на внутренний HTML, но не вызываете вашу проверку функцию.

<html> 
    <h1 id="displayNumber"></h1>
    <script>
        let input = parseInt(prompt('Enter a number between 1 and 1000', '50'));
        function check(input) {
            let quotient = [];
            while (input > 0) {
                quotient.push(input % 2);
                input = parseInt(input / 2);
            }
            return quotient.reverse().join('');
        }

        function display() {
            if (input >= 1 && input <= 1000) {
                document.getElementById("displayNumber").innerHTML = check(input);
            }
        }

    display();

</script>
</html>
0 голосов
/ 14 февраля 2020

Вот обновленный фрагмент:

		function check(input) {
  	let quotient = [];
             while (input != 0) {
                 if (input < 1000 && input % 2 != 0) {
                     input = input / 2;
                 }
                 else if (input < 1000 && input % 2 == 0) {
                     input = input / 2;
                 }

                   quotient.push(input);
             }
             return quotient;

         }
 
         function display() {
             let input = parseInt(prompt("Enter a number between 1 and 1000", "50"));
             var answer = check(input);
             document.getElementById("displayNumber").innerHTML = answer;         

        }          
        display();
 <h1 id="displayNumber"></h1>
0 голосов
/ 14 февраля 2020

Вот исправленный скрипт, надеюсь, это поможет.

   function check(input, quotient) {
       while (input != 0) {
        if (input < 1000 && input % 2 != 0) {
            quotient.push("1");
            input = parseInt(input / 2);
        }else if (input < 1000 && input % 2 == 0) {
            quotient.push("0");
            input = parseInt(input / 2);
        }
    }
}

function display() {
    let input = parseInt(prompt("Enter a number between 1 and 1000", "50"));
    let quotient = [];
    check(input, quotient);
    let answer = quotient.reverse().join('');
    document.getElementById("displayNumber").innerHTML = answer;
}
display();
0 голосов
/ 14 февраля 2020

В настоящее время вы просто создаете функции store и check, но на самом деле не вызываете их.

Однако, если все, что вы хотите сделать, это отобразить ввод в двоичном виде, вы можете использовать функция toString, передавая желаемую базу.

Я не уверен, что вы хотите отобразить, если число находится за пределами диапазона 1-1000. Поэтому я просто поставил «Неверный ввод». Вы можете добавить еще несколько проверок, если это NAN ect

 <!DOCTYPE html>
 <html>

   <h1 id="displayNumber"></h1>
   <script>
     // Prompt user for number between 1-1000
     let input = parseInt(prompt("Enter a number between 1 and 1000", "50"));
     
     function display() {
       if (input < 1 || input > 1000) {
         document.getElementById("displayNumber").innerHTML = "Invalid input";
       } else {
         document.getElementById("displayNumber").innerHTML = input.toString(2);
       }
     }

     display();

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