---
# System prepended metadata

title: "\U0001F3C5 Day 18 - forEach"
tags: [JS 直播班 - 2025 秋季班]

---

# 🏅 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);

-->