昨天簡介完迴圈的基本觀念之後,今天要分享一個迴圈加總的範例,透過範例應該能夠更清楚迴圈實際的運作。
有一個村莊,裡面有三個農場,要如何透過迴圈計算三個農場的香蕉總產量呢?
var farms = [
{
farmer: '卡斯伯',
field: 6,
chick: 200,
banana: 5000
},
{
farmer: '查理',
field: 10,
chick: 50,
banana: 1000
},
{
farmer: '約翰',
field: 6,
chick: 120,
banana: 3215
}
]
// 計算今年的香蕉採收總數
var farmsTotal = farms.length;
var thisYearBananaGoal = 0;
// 香蕉總數是 0,因為還不知道農田所有的香蕉數量是多少,而我們預期會得到一組數字所以先宣告一個為 0 的初始值。
for (var i = 0; i < farmsTotal; i++) {
thisYearBananaGoal += farms[i].banana;
}
console.log('今年的香蕉總採收數量是:' + thisYearBananaGoal);
首先我們有一個陣列資料庫,任務是計算陣列裡所有農場的香蕉產量。
thisYearBananaGoal = 0
作為產量的初始值,且該變數將被用以儲存加總後的數字。for
迴圈去執行加總的動作,這個部分的核心觀念是「累加」:thisYearBananaGoal += farms[i].banana;
thisYearBananaGoal = thisYearBananaGoal + farms[i].banana;
)farms[i].banana;
代表跑迴圈時,會去抓取陣列 farms
對應物件裡的 banana
值,比如說跑第一次時 i = 0;
那 farms[0]
就會去抓第一個物件(banana
的值是 5000
)。所以,第一圈會跑 thisYearBananaGoal = 0 + 5000;
(共 5000)
接著再跑第二圈 thisYearBananaGoal = 5000 + 1000;
(共 6000)
再跑第三圈 thisYearBananaGoal = 6000 + 3215;
跑完第三圈之後,因為條件已經成就,再跑下去條件將會回傳 false
,所以迴圈會到此停止。
最後我們得到 thisYearBananaGoal = 9215
。
不知不覺我的鐵人賽已經進行到一半了,希望接下來的 15 天我也能堅持住 ><