close

今天來看看平常實務中,會常常被使用到的陣列迴圈寫法!
其實自從認識了forEach和map那些方法後,就比較少使用for迴圈了,原因只是單純覺得寫forEach和map感覺比較簡潔,不過用習慣了這些方法後,卻在前陣子在寫一個些需要依照不同情況跳訊息的function時,才發現到原來一樣是迴圈寫法,卻也不是真的一樣的迴圈,雖然大概念的確一樣是迴圈(咦)!
下面就簡單記錄一下從我這次的實務中,所認識到的迴圈的不同。


for迴圈和forEach迴圈
想用透過迴圈來處理一些狀況,且不需要在跑迴圈後,回傳一個新的陣列的話,就可以使用for迴圈和forEach迴圈。不過這for迴圈和forEach迴圈的寫法有些許的差異。
for迴圈
for迴圈主要有以下這兩種寫法,分別是以下兩種:
(其實嚴格來說,還有for in迴圈,但自己最常用的是這兩種,所以這邊就只會提到這兩種)
第一種
carbon (51)
第二種
carbon (52)


forEach迴圈
carbon (53)

兩種迴圈的差異點
1. for迴圈可以中斷,forEach迴圈不可以中斷
=> forEach會一直執行到整個迴圈跑完

以下這個情境,即使item等於3的情形下,有寫return,仍然還是會繼續遍歷完整個陣列。
carbon (56)

但是在下面這兩個用法中,就可以透過break,提前在遍歷到3的時候,就結束迴圈的進行,所以只會跑到陣列裡的數字3。
carbon (57)
carbon (54)

2. arguments無法使用forEach
=> 雖然說arguments很像陣列,但他其實並不是真正的陣列,所以無法使用只有陣列才有的forEach這個方法。

在下面這個情境中,會跳出錯誤訊息,因為arguments無法使用forEach。
image
carbon (58)

以上就是前陣子實作時碰到,才真正了解到的迴圈操作差異,那小小筆記就記錄到這裡啦。
打完收工!

arrow
arrow
    創作者介紹
    創作者 文科少女寫程式 的頭像
    文科少女寫程式

    文科少女學程式

    文科少女寫程式 發表在 痞客邦 留言(0) 人氣()