我正在努力解决问题。
如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23.
我完成了大部分工作。但是,我无法将数字加到数组中。这是我到目前为止的代码
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function () {
var counter;
for (counter = 0; counter < 1001; counter++) {
if (counter % 3 == 0 || counter % 5 == 0) {
var arrayNumbers = [];
arrayNumbers.push(counter);
}
}
var total = 0;
$.each(arrayNumbers, function () {
total += this;
});
console.log(total);
});
</script>
控制台将其记录为1000
我认为什么是wrng是我变量的范围。我该如何解决这个问题?
答案 0 :(得分:1)
您应该在arrayNumbers
之外创建for loop
,或者在每个循环中处置并覆盖。
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function () {
var counter;
var arrayNumbers = [];
for (counter = 0; counter < 1001; counter++) {
if (counter % 3 == 0 || counter % 5 == 0) {
arrayNumbers.push(counter);
}
}
var total = 0;
$.each(arrayNumbers, function () {
total += this;
});
console.log(total);
});
</script>
我不想弄乱您的算法,但我建议您使用计数器变量进行此练习。
您应该按照找到的每个倍数递增计数器,计数器的最终值将是所有倍数的总和
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function () {
var counter = 0;
var number;
for (number = 0; number < 1001; number++) {
if (number % 3 == 0 || number % 5 == 0) {
counter += number;
}
}
console.log(counter);
});
</script>
答案 1 :(得分:1)
这可以在没有数组的情况下实现,只使用循环。
$(document).ready(function () {
var counter;
var result;
for (counter = 0; counter < 1001; counter++) {
if (counter % 3 == 0 || counter % 5 == 0) {
result+=counter;
}
console.log(result);
}
答案 2 :(得分:0)
您可以在没有任何数组或jQuery的情况下执行此操作:
var counter, total=0;
for (counter = 0; counter <= 1000; counter++) {
if (counter % 3 == 0 || counter % 5 == 0) {
total += counter;
}
}
console.log(total);
<强> jsFiddle example 强>
答案 3 :(得分:0)
为什么不在for循环中进行总结?有点像这样:
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function () {
var counter;
var total= 0;
for (counter = 0; counter < 1001; counter++) {
if (counter % 3 == 0 || counter % 5 == 0) {
var arrayNumbers = [];
arrayNumbers.push(counter);
total += counter;
}
}
console.log(total);
});