Нужна помощь с очень простой промежуточной суммой для JavaScript - PullRequest
1 голос
/ 24 мая 2011

Настолько простая проблема, что я просто не могу понять.Я просто учусь, извините, если это очевидно.

Должен составить 7-кратные таблицы и подвести промежуточный итог в конце.Вот что у меня есть:

document.write("<h3>7 times tables</h3>");
document.write("<ul>");
i=1;
seven=7;

  while(i < 13) {
     Seven= i * seven;
     document.writeln("<li>" + i + " times 7 = " + Seven);
     var result=new Array(6)
     result[1]=Seven;
     i++;
  }

document.writeln("</ul>");
document.write("<strong>The sum do far is"+result[1]+"</strong>");

Спасибо

Ответы [ 4 ]

3 голосов
/ 24 мая 2011

Вы переделываете свой массив result в цикле, поэтому каждая итерация стирает предыдущие вычисления и запускает вас заново. переместите var result=new Array(6) непосредственно перед while(i<13) и попробуйте снова:

var result = new Array(6);
while(i < 13) {
   ...
}

Тем не менее, возникает вопрос ... «зачем использовать массив»? Вы просто используете его для подведения итогов, поэтому просто используйте простой int:

var result = 0;
while(i < 13) {
   result = result + (i * 7);  // or simply: result += i * 7;
   ...
}

Вот скрипка http://jsfiddle.net/zeYQm/1/

1 голос
/ 17 ноября 2013

Вы также можете взглянуть на underscore.js , который добавляет некоторые хорошие функциональные возможности программирования в Javascript.

var underscore = _.noConflict();
var arr = [5, 5, 5, 5, 5];
var temp = [];
underscore.reduce(arr, function(memo, num) { 
    var value = memo + num;
    temp.push(value);
    return value; }, 0);
console.log(temp);

// Производит: 5, 10, 15, 20, 25.

1 голос
/ 24 мая 2011
document.write("<h3>7 times tables</h3>");
document.write("<ul>");
i=1;
seven=7;
var result = 0;
  for(var i = 1; i <= 13; i++){
     document.writeln("<li>" + i + " times 7 = " + (seven*i) + '</li>');   
    result += (seven*i);
  }

document.writeln("</ul>");
document.write("<strong>The sum do far is"+result+"</strong>"
0 голосов
/ 24 мая 2011

Вы воссоздаете массив результатов каждый раз, когда проходите цикл, попробуйте объявить его перед циклом while.

...