如何在数组中添加数字

时间:2014-07-23 14:29:40

标签: javascript arrays

我正在努力解决问题。


如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23.

求出低于1000的所有3或5的倍数之和。

我完成了大部分工作。但是,我无法将数字加到数组中。这是我到目前为止的代码

<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是我变量的范围。我该如何解决这个问题?

4 个答案:

答案 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);
});