照着前面建立的小镇和房子的假设走,下面是前篇创建的阵列:
var area=[ { house: 'Jerry', room: 3, people: 6, }, { house: 'Tom', room: 4, people: 10, }, { house: 'Jack', room: 6, people: 13, }]
如果此时,我想要知道小镇上总共有多少人,意即就要把每笔资料的 people
属性内的数字去做加总,这时候又该如何撰写呢?我们可以宣告一个变数来存放总人数:
var peopleTotal = 0;
接着撰写 for
迴圈,捞取每笔资料的 people
属性,并进行加总:
for(var i=0; i<area.length; i++){ peopleTotal += area[i].people; // 注[1]}console.log(peopleTotal);
此时 console 就会输出 29
注[1]: a += b,就是 a = a+b,把 a 重新赋予值,而值等于 a+b
如果我们照着上面的迴圈实际跑一次,当第一次 i=0
的时候
peopleTotal = peopleTotal + area[0].people// peopleTotal = 0 + 6
第二次 i=1
,此时还是小于 area
阵列的长度
peopleTotal = peopleTotal + area[1].people// peopleTotal = 6 + 10
第三次 i=2
,此时依然还是小于 area
阵列的长度
peopleTotal = peopleTotal + area[2].people// peopleTotal = 16 + 13
第四次 i=3
,此时已经没有小于 area
阵列的长度,所以跳出迴圈,最终在 console 输出 peopleTotal
会得到29
这里可以多看几遍了解迴圈怎么跑的,深入理解29是怎么来的