javascript count представляет значение i с выходным значением предыдущего цикла - PullRequest
0 голосов
/ 02 марта 2019

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 к выходному значению предыдущего цикла.Это может быть простой вопрос.Я искал в Google и StackOverflow.Но, не получил желаемый результат.

enter image description here

На снимке экрана выше,

0 - предыдущее значение цикла + 1 -присутствует я возвращает => 1
1 - это значение предыдущего цикла + 2 присутствует, я возвращает => 3
3 - значение предыдущего цикла + 3 присутствует, я возвращает => 6
6 - предыдущий циклзначение + 4 присутствует, я возвращает => 10

Ответы [ 5 ]

0 голосов
/ 02 марта 2019

Я думаю, что я просто использовал бы массив, чтобы у вас обоих была предыдущая сумма, и вы также можете использовать ее с .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>
0 голосов
/ 02 марта 2019

Вы можете использовать функцию 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;
}
<button onclick="myFunction()">Count</button>

<p id="demo"></p>
0 голосов
/ 02 марта 2019

Вам просто нужна вторая переменная для хранения последнего значения:

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>
0 голосов
/ 02 марта 2019

Сохранить 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>
0 голосов
/ 02 марта 2019

Вам нужна другая постоянная переменная, которая отслеживает последнюю сумму, которая была объединена с 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;
}
<button onclick="myFunction()">Count</button>

<p id="demo"></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...