我试图运行一个程序,在收到一个正整数,将其分解成其单独的数字,像这样。数是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");
}
我知道问题出在数字和我,但我不知道如何解决它。
你可以采取一个位值由10每次迭代繁殖。
function getDigits(value) {
var place = 1;
while (value >= place) {
console.log(Math.floor(value / place) % 10);
place *= 10;
}
}
getDigits(652);
getDigits(100);
不使用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>
然后只需更换
var i = 0;
var digits = [];
while (a > 0) {
digits.push(a % 10);
a = Math.floor(a/10);
i++;
}
这个问题并没有做出真正意义..不用数组,但他其实是希望得到的结果是一个数组...