---
# System prepended metadata

title: 'JavaScript 學習筆記 - 9: forEach'
tags: [JavaScript 學習筆記]

---

###### tags: `JavaScript 學習筆記`
# JavaScript 學習筆記 - 9: forEach
## 陣列資料處理
### forEach()
```javascript=
let list = [a, b];
data.forEach(function(item,index,array){
  console.log(item,index,array);
})
```
function: data 裡有多少資料就跑幾次，次數出現在下方印出的 () 裡
item, index, array都是參數名稱，可自行更改名稱
這邊只是先列出會跑出什麼資料而已
會印出
```javascript=
a 0 (2) [a, b]
b o (2) [a, b]
```
### forEach 常見用法
#### 累加
```javascript=
let data = [10, 20, 30];
let total = 0;

data.forEach(function(item, index){
  total += item;
})
```
最終得到累加的資料

#### 篩選
選出陣列中的偶數
```javascript=
let data = [1,2,3,4,5,6];
let total = 0;
let newData = [];

data.forEach(function(item,index) {
  if (item%2 == 0) {
    total+=1;
    newData.push(item);
  }
})
````

#### 讀取資料
```javascript=
item.Attribute;
```
擊可讀取物件 Attribute 的資料

#### 透過物件整合資料
```javascript=
let data = [];
let people = {
  male: 0,
  female: 0
};

data.forEach(fuction(item, index) {
  if (item.sex == "male") {
  people.male += 1;
  } else {
    people.female += 1;
  }
})
```

#### 透過陣列整合資料
```javascript=
let data = [];
let people = {
  male: [],
  female: []
};

data.forEach(fuction(item, index) {
  if (item.sex == "male") {
  people.male.push(item);
  } else {
    people.female.push(item);
  }
})
```
