簡體   English   中英

如何在數組中加數字

[英]How do I add numbers in an array

我正在嘗試解決一個問題。


如果我們列出所有低於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是我的變量范圍。 我怎樣才能解決這個問題?

您應該在for loop之外創建arrayNumbers ,否則它將在每個循環中被處理和覆蓋

<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>

通過使用僅循環一個,可以不使用數組來實現。

 $(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);
        }

您可以在沒有任何數組或jQuery的情況下執行此操作:

var counter, total=0;
for (counter = 0; counter <= 1000; counter++) {
    if (counter % 3 == 0 || counter % 5 == 0) {
        total += counter;
    }
}
console.log(total);

jsFiddle示例

您為什么不只在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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM