function myFunction() {
var text = "";
var i;
for (i = 0; i <= 10; i++) {
text += + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">Count</button>
<p id="demo"></p>
我想将当前的i
值添加到先前的循环输出值中。这也许是一个简单的问题。我已经在谷歌和stackoverflow搜索。但是,没有得到理想的结果。
在上面的屏幕截图中,
0是上一个循环值+ 1存在,我返回=> 1
1是上一个循环值+ 2存在,我返回=> 3
3是上一个循环值+ 3存在,我返回=> 6
6是前一个循环值+ 4存在,我返回=> 10
答案 0 :(得分:4)
您需要另一个持久变量,用于跟踪与+
串联的最后一个总数:
text
function myFunction() {
var text = "";
var i;
var lastTotal = 0;
for (i = 0; i <= 10; i++) {
var newTotal = lastTotal + i;
text += + newTotal + "<br>";
lastTotal = newTotal;
}
document.getElementById("demo").innerHTML = text;
}
(从技术上讲,您不需要<button onclick="myFunction()">Count</button>
<p id="demo"></p>
变量,但是它使代码的意图更加清晰)
您还可以使用newTotal
来做到这一点:
reduce
function myFunction() {
let text = '';
Array.from({ length: 11 }, (_, i) => i)
.reduce((lastTotal, i) => {
const newTotal = lastTotal + i;
text += newTotal + '<br>';
return newTotal;
}, 0);
document.getElementById("demo").innerHTML = text;
}
答案 1 :(得分:1)
您只需要第二个变量来保存最后一个值:
function myFunction() {
var text = "";
var sum = 0;
for (var i = 0; i <= 10; i++) {
sum += i;
text += sum + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">Count</button>
<p id="demo"></p>
答案 2 :(得分:1)
保留最后一个数字的count
:
function myFunction() {
var text = "";
var i;
var count = 0;
for (i = 0; i <= 10; i++) {
count += i;
text += count + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
<button onclick="myFunction()">Count</button>
<p id="demo"></p>
答案 3 :(得分:1)
您可以使用函数<cfdump var="#form#" format="html" output="/full/path/to/file">
来填充操作,然后使用函数reduce
来构建所需的输出。
forEach
function myFunction() {
var html = "";
Array.from({length: 10}, (_, i) => i + 1).reduce((a, c, i) => {
a[i] = (a[i - 1] || 0) + c;
return a;
}, []).forEach((n, i, arr) =>
(html += (arr[i - 1] || 0) + " + " + (i + 1) + " = " + n + "<br>"));
document.getElementById("demo").innerHTML = html;
}
答案 4 :(得分:1)
我想我只是使用一个数组,以便你们俩都有前一个总数,并且还可以将其与.join()
一起使用来设置HTML。
function myFunction() {
for (var i = 0, a = []; i <= 10; i++) {
a[i] = i + (a[i-1] || 0);
}
document.getElementById("demo").innerHTML = a.join("<br>");
}
<button onclick="myFunction()">Count</button>
<p id="demo"></p>