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

### 這邊需要特別提醒,在 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 中回報就算完成了喔! 解答請參考下圖(需打開程式碼的部分觀看)

<!-- 解答
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);
-->