# 🏅 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);
})
```
執行結果:

**這邊需要特別提醒,在 `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);
-->