---
# System prepended metadata

title: 1. Javascript forEach資料處理方法
tags: [Javascript]

---

###### tags: `Javascript`

# 1. Javascript forEach資料處理方法


## forEach 寫法
* 參數可以只擺前面兩個
```javascript=
let data = [30,40];
data.forEach(function(item,index,array){
    console.log(item,index,array)
})
```
## forEach融入物件與陣列 將男女資料insert到物件裡的陣列
```javascript=
let people ={
    male:[],
    woman:[]
}
data.forEach(function(item,index){
    if(item.sex == 'woman'){
        people.male.push(item);
    }
    else{
        people.woman.push(item);
})
```
# 2. forEach結合Dom實際運用

## forEach結合innerHTML
```htmlembedded=
<div>
    <h2>
        新增資料
    </h2>
    <input  type="text" placeholder="充電站名稱"             class="stationName">
    <select name="" id="" class="stationCharge">
        <option value="免費"></option>
        <option value="投幣式"></option>
    </select>
    <input  type="button" class="btn" value = '儲存'>
    <h2>
        資料顯示
    </h2>
    <input  type="button" value = '全部'>
    <input  type="button" value = '免費'>
    <input  type="button"  value = '投幣式'>
</div>

<ul class = "list">
    <li>xx充電站，免費</li>
</ul>
```

>初始化 確保程式先執行
```javascript=
let date = [
    {
        Charge:"免費",
        name:"小明充電站"
    },{
        Charge:"投幣式",
        name:"小紅充電站"
    }
    
];
//0. 下方兩個函式都有用到此句，所以移到全域變數共同使用
const list = document.querySelector(".list");

//1. 預先載入 列出所有充電站
function init(){
    let str = "";
    data.forEach(function(item,index){
    let content = '<li>${item.name}，${item.charge}</li>';
    str+=content;
    console.log(str);
    })
list.innerHTML = str  
}

init();

//2. 判斷使否有確實點擊到button，如果有點擊到確實依照Charge做出顯示
const stationFilter = document.querySelector(".filter");
stationFilter.addEventListener("click",function(e){
    if(e.target.value == undefined){
        console.log("你沒點擊到")
        return ;
    }
    else{
       let str = "";
       data.forEach(function(item,index){
           //你所點擊到button的value
           if(e.target.value == '全部'){
               str += '<li>${item.name}，${item.charge}</li>'}
           else if(e.target.value == item.Charge){
               str += '<li>${item.name}，${item.charge}</li>'
           }
           })
       
      list.innerHTML = str;
      }
    })
//3. 新增邏輯
const stationName = document.querySelector(".stationName");
const stationCharge = document.querySelector(".stationCharge");
const btn = document.querySelector(".btn");
btn.addEventListener("click",function(e){
    let obj={}
    obj.Charge = stationCharge.value;
    obj.name = stationName.value;
    data.push(obj);
    init();
    
    
})
```