尝试制作一个输出2到0-31的幂的循环。到目前为止,我只有它给了我31的力量。我做错了什么?
function findPower()
{
var answer=0;
for(var i=0;i<=31;i++)
{
answer=Math.pow(2,i);
}
document.getElementById("output").innerHTML=answer;
}
答案 0 :(得分:2)
因为在每次迭代的循环中,你都会覆盖answer的值,所以最后它只有最后一次迭代的值。
如果你想迭代每个数字的值,那么一个简单的解决方案是将它们推送到一个数组,并在循环之后加入它们以创建如下的答案字符串
var list = SomeFunction<FaceBook>();
function findPower() {
var answer = [];
for (var i = 0; i <= 31; i++) {
answer.push(Math.pow(2, i));
}
document.getElementById("output").innerHTML = answer.join(', ');
}
&#13;
function findPower() {
var answer = [];
for (var i = 0; i <= 31; i++) {
answer.push(Math.pow(2, i));
}
document.getElementById("output").innerHTML = answer.join(', ');
}
findPower();
&#13;
答案 1 :(得分:1)
你在循环中声明&#34; document.getElementById(&#34;输出&#34;)。innerHTML = answer;&#34;覆盖以前的值,因此您获得最后一个值。所以我所做的就是结合值而不是覆盖以前的值
它应该跟随
function findPower() {
var answer = 0;
for (var i = 0; i <= 31; i++) {
answer = Math.pow(2, i);
document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + "," + answer
}
}
&#13;
<body onload="return findPower();">
</body>
<span id="output"></span>
&#13;
答案 2 :(得分:0)
如果我说得对,你想要计算2的幂的总和:
for (var i = 0; i <= 31; i++) {
answer += Math.pow(2, i);
}
注意“+”号。写作:
answer += Math.pow(2, i);
与写作相同:
answer = answer + Math.pow(2, i);
答案 3 :(得分:0)
也许它更好更快。
function findPower() {
var answer = [];
var pow = 1;
answer.push(pow);
for (var i = 1; i <= 31; i++) {
pow *= 2;
answer.push(pow);
}
document.getElementById("output").innerHTML = answer.join(', ');
}