簡體   English   中英

如何將for循環的每次迭代結果存儲到數組中(Javascript)

[英]How to store the result of each iteration of a for loop into an array (Javascript)

這個問題也可能是(取決於您的看法)-如何使用for循環進行基本的數學運算,將3的倍數之和相加

所以我正在做Euler項目的問題1。

我已經(已經)撞上了鋼筋牆。 我可以使用一些幫助-請僅解決問題的一部分(我不是在尋找問題的答案,而是在解決我的具體問題,因此我可以繼續嘗試使用解決問題你們在這里給我的任何答案)...

無論如何。

我(認為我)創建了一個for循環,該循環將為我提供3的倍數。但是,我正在嘗試存儲for循環的每次迭代結果,以便將它們的總和乘以這些總和。 m嘗試存儲循環的每次迭代的結果-無論是將其存儲到數組中還是將變量乘以乘數的總和-對我而言都無關緊要-我不介意學習這兩種方法。

我確定這聽起來有點令人困惑,所以讓我用一個例子來畫我的畫...

我有一個for循環:

for (i = 1; i <= 3; i++) {
var x = 0;
x += (i * 3);
WHAT DO I DO NEXT????

^因此,我認為這在循環的第一次迭代中給我x值為3,在第二個循環中給x提供9的值,在最終循環中給x提供18的值。 沒錯吧? (如果返回18,我認為不需要將每次迭代的值存儲到數組中)

第一次迭代:

i = 1; x = 0

原始方程式...

(i * 3) + x            

所以...

(1 * 3) + (x = 0) = 3

因此,在完成第一個循環后,x的值為3,對嗎? (問題:如何存儲x的值(為3)-在for循環的此階段如何將其存儲在數組中?)

循環的第二次迭代:

i = 2; x = 3

(2 * 3) + (x = 3) = 9     

(與之前相同的問題:如何將這個值添加到數組中?)

第三次迭代:

i = 3; x = 9

(3 * 3) + (x = 9) = 18      

問:這不應該是for循環完成后x的最終值嗎??? 由於某種原因,當我運行代碼時,x的最終值為9,而不是18

因此,基本上我正在嘗試將3個值的和相加...但是接下來我該怎么辦? 我以為我的for循環會將每個循環后的方程式結果加到x,但x的值為9而不是以w / 18( 3 + 6 + 9的總和)結束。

我應該使用數組嗎? 如果是這樣,我想我可以將返回值添加到數組中,但是我不確定如何將循環的每次迭代的結果添加到數組中。 也許以下?

for (i = 1; i <= 3; i++) {
var array = [];
x = 0;
x += (i *3); 
array.push(x);
};

^我嘗試在jfiddle中運行它,但是只會將x(9)的最后一個值添加到數組中...因此,在for循環的每次迭代之后,如何將x的值添加到數組中? 而且我看不到for循環在哪里返回x的值為9的問題?

另外,我假設隨着我們的進步,歐拉問題變得更加困難了? 如果是這樣,我還有很多工作要做。

提前致謝...

只需創建一次數組,然后將每次迭代的結果推送到數組:

var array = [];
for (i = 1; i <= 3; i++) {
    var x = 0;
    x += (i *3); 
    array.push(x);
}

或為此,只需使用以下命令:

var array = [];
for (i = 1; i <= 3; i++) {
    array.push(i *3);
}

或僅獲取因素的總和,請使用以下方法:

var x = 0;
for (i = 1; i <= 3; i++) {
    x += i *3;
}

您在循環的每一步都聲明var x = 0var array = [] ,請嘗試以下操作:

var array = [], x = 0;
for (i=1; i<4; i++){
  x += (i*3); 
  array.push(x);
}

暫無
暫無

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

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