# 🏅 Day 18 - forEach [`forEach()`](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) 是屬於 **「陣列」** 的方法,會將陣列內的每個元素一一傳入,並依序執行函式。 `forEach()` 內的函式常見會帶有三個參數,以下為用法示例: ```javascript= 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 無法停止函式進行下一個 item。除非程式碼有誤,否則並沒有中止 `forEach()` 的辦法** ```javascript= 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 陣列中。 ```javascript= let numberAll = [25, 30, 15, 50, 17, 40]; let numberAbove30 = []; let numberUnder30 = []; numberAll.forEach(function(/* 填入參數 */){ if (/* 填入判斷式 */) { /* 程式碼撰寫處 */ } else { /* 程式碼撰寫處 */ } }); console.log(numberAbove30); console.log(numberUnder30); ``` <!-- 解答: let numberAll = [25, 30, 15, 50, 17, 40]; let numberAbove30 = []; let numberUnder30 = []; //forEach numberAll.forEach(function(item) { if (item >= 30) { numberAbove30.push(item); } else { numberUnder30.push(item); } }); console.log(numberAbove30); console.log(numberUnder30); -->