Задать вопрос
@vnordan

Как получить конечный результат работы цикла for?

День добрый всем.

Есть у меня простенькая таблица из динамического количества полей , и хочу я просуммировать все значения этих полей. Делаю следующим образом:
<script>
  var arr = document.getElementsByTagName('input'); //делаю массив из всех тегов <input>
  var s = 0;
  for(i = 1; i <= arr.length; i++){
      var x = parseInt(arr[i].value, 10); //каждый шаг цикла беру очередное значение поля таблицы, делаю из него integer
      var s += x; // суммирую это значение к общему результату
      document.write('Шаг= ', i, ' ', 'Сумма= ', s, '<br>'); // вывожу на экран промежуточное значение суммы
      }
</script>


Всё работает, всё хорошо. Но как только я хочу перестать выводить промежуточное значение, а вывести сразу конечный результат, и делаю так:
<script>
  var arr = document.getElementsByTagName('input'); //делаю массив из содержимого всех тегов <input>
  var s = 0; //начальное значение суммы всех значений
  for(i = 0; i < arr.length; i++){
      var x = parseInt(arr[i].value, 10); //каждый шаг цикла беру очередное значение поля таблицы, делаю из него integer
      var s += x; // суммирую это значение к общему результату
      }
  document.write('Сумма= ', s); // хочу вывести конечный результат работы скрипта
</script>


- на экран не выводится вообще ничего. Где я ошибаюсь?
  • Вопрос задан
  • 516 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Deonisius
@Deonisius
Родился в 11110110111 году, 11000 января.
В цикле не нужно инициализировать переменную "s", вы это сделали до цикла.
P.S. document.write - вещь специфическая, поэтому, в вашем случае, лучше использовать какой-то другой способ вывода: innerHTML, textContent, insertAdjacentHTML и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы