![](/img/trans.png)
[英]jQuery .before() then find it's content and apply the for loop. What am I doing wrong
[英]Javascript loop. What am I doing wrong?
嘗試建立一個輸出2到0-31的冪的循環。 到目前為止,我只得到2的31的冪。我在做什么錯?
function findPower()
{
var answer=0;
for(var i=0;i<=31;i++)
{
answer=Math.pow(2,i);
}
document.getElementById("output").innerHTML=answer;
}
因為在每次迭代的循環中您都覆蓋了answer的值,所以最后它僅具有最后一次迭代的值。
如果要迭代每個數字的值,那么一個簡單的解決方案是將它們推入數組,並在循環之后將它們加入以創建答案字符串,如下所示
function findPower() {
var answer = [];
for (var i = 0; i <= 31; i++) {
answer.push(Math.pow(2, i));
}
document.getElementById("output").innerHTML = answer.join(', ');
}
function findPower() { var answer = []; for (var i = 0; i <= 31; i++) { answer.push(Math.pow(2, i)); } document.getElementById("output").innerHTML = answer.join(', '); } findPower();
<div id="output"></div>
您在循環“ document.getElementById(” output“)。innerHTML = answer;”中聲明 正在覆蓋先前的值,因此您將獲得最后的值。 所以我要做的是隱藏值,而不是覆蓋先前的值
它應該喜歡
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 } }
<body onload="return findPower();"> </body> <span id="output"></span>
如果我說對了,您想計算2的冪的總和:
for (var i = 0; i <= 31; i++) {
answer += Math.pow(2, i);
}
注意“ +”號。 寫作:
answer += Math.pow(2, i);
與寫作相同:
answer = answer + Math.pow(2, i);
也許更好,更快。
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(', ');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.