# 🏅 3/9 (二) 每日任務 ###### tags: `JS 直播班 - 2021 春季班` **備註: 題目答案有做修正!** forEach 簡介 --- [課程章節對照](https://courses.hexschool.com/courses/1289881/lectures/30847733) forEach() 是屬於 **「陣列」** 的方法,會將陣列內的每個元素一一傳入,並執行給定的函式一次。 forEach() 內的函式常見會帶有三個參數,以下為用法示例: ```js= let data = ["a", "b", "c"]; // 參數 item 代表陣列中目前正在被處理的那個元素 // 參數 index 代表陣列中目前正在被處理的那個元素的索引值 // 參數 array 代表被處理的陣列本身,在此為 data data.forEach(function(item, index, array){ console.log(item, index, array); }) ``` 執行結果: ![](https://i.imgur.com/NuRNgjX.png) ### 這邊需要特別提醒,在 forEach() 函式內用 return 是無效的。除非程式碼有誤,否則並沒有中止 forEach() 的辦法 ```js= let data = ["a", "b", "c"]; // data.forEach(function(item, index, array){ console.log(item, index, array); // 程式碼會忽略這個 return return }) ``` 問題 (修正後版本) --- 請根據以下要求撰寫程式碼: > 1. 如果 NumberAll 陣列內的值大於或等於 30,則用 push() 方法將其加入 NumberAbove30 陣列中。 > 2. 如果 NumberAll 陣列內的值小於 30,則用 push() 方法將其加入 NumberUnder30 陣列中。 ```js= let NumberAll = [25, 30, 15, 50, 17, 40]; let NumberAbove30 = []; let NumberUnder30 = []; NumberAll.forEach(function(/* 填入參數 */){ if(/* 填入判斷式 */){ /* 程式碼撰寫處 */ }else{ /* 程式碼撰寫處 */ } }); console.log(NumberAbove30); console.log(NumberUnder30); ``` 回報流程 --- 將答案寫在 CodePen 並複製 CodePen 連結貼至 thread 中回報就算完成了喔! 解答請參考下圖(需打開程式碼的部分觀看) ![](https://i.imgur.com/6UoJVtD.png) <!-- 解答 let NumberAll = [25, 30, 15, 50, 17, 40]; let NumberAbove30 = []; let NumberUnder30 = []; NumberAll.forEach(function(item){ if(item >= 30){ NumberAbove30.push(item); }else{ NumberUnder30.push(item); } }); console.log(NumberAbove30); console.log(NumberUnder30); -->