在JS正整数的单独使用位数while循环而不串/阵列

问题描述 投票:0回答:3

我试图运行一个程序,在收到一个正整数,将其分解成其单独的数字,像这样。数是652时,输出为2,5,6,有被认为不阵列和我不能使一个字符串的数目。我写的大部分代码,但是它缺少的东西,我想不通。问题是真的,我不知道如何存储的数字是迭代过程中输出。希望得到任何帮助。我使用的是while循环,但for循环可以使用。

function problem_09() {

  var outputObj=document.getElementById("output");

  var a = parseInt(prompt("Please enter a number: ", ""));
  var i = 0;
  var digits = ;

  outputObj.innerHTML="number: "+a+"<br><br>its digits: ";

  while (a>0) {
    digits[i]= a%10;

    a = Math.floor(a/10);
    i++;
  }

  outputObj.innerHTML=digits;

  outputObj.innerHTML=outputObj.innerHTML+"<br><br>"+"program ended";
  document.getElementsByTagName("button")[0].setAttribute("disabled","true");
}

我知道问题出在数字和我,但我不知道如何解决它。

javascript html while-loop numbers digits
3个回答
1
投票

你可以采取一个位值由10每次迭代繁殖。

function getDigits(value) {
    var place = 1;

    while (value >= place) {
        console.log(Math.floor(value / place) % 10);
        place *= 10;
    }
}

getDigits(652);
getDigits(100);

0
投票

不使用Math.floor(...)的溶液

function getDigits(n) {
  var res = [];

  while (n > 0) {
    var r = n % 10,
      d = n - r,
      curr = d / 10;
    n = curr;
    res.push(r);
  }

  return res;
}

var n = prompt("Enter a number: "),
  output = document.getElementById("output");
output.textContent = getDigits(+n);
<div id="output"></div>

-1
投票

然后只需更换

var i = 0;
var digits = [];

while (a > 0) {
    digits.push(a % 10);
    a = Math.floor(a/10);
    i++;
}

这个问题并没有做出真正意义..不用数组,但他其实是希望得到的结果是一个数组...

© www.soinside.com 2019 - 2024. All rights reserved.