这个真正简单的问题,我似乎无法弄明白。如果这很明显,我只是在学习。
必须输出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>");
由于
答案 0 :(得分:3)
您在循环中重新声明了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 :(得分:1)
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>"
答案 2 :(得分:1)
您可能还想看看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。
答案 3 :(得分:0)
每次循环时都要重新创建结果数组,尝试在while循环之前声明它。