---
# System prepended metadata

title: '陣列&json練習for/in,for/of釐清'
tags: [javascript]

---

# 陣列&json練習for/in,for/of釐清
###### tags: `javascript`

## **for key in object** 
迴圈則是跑每個索引，陣列有幾個索引就跑幾次

```javascript=
ex:   
let object=[3,26,51,6,51]
    
    for(let key in object){
    document.write(`${key}`)//印出0,1,2,3,4
    document.write(`${object[key]}`)//印出3,26,51,6,51
    }
```
## **for value of keys**
迴圈可以跑過每個值，陣列有幾個值就跑幾次
**<font color='red'>只能適用在陣列，無法讀出key值</font>**




## 練習1

宣告一個數字陣列

    let numbers = [33, 75, 69, 41, 50, 19]

    印出框架 第 x 個數字為 y(for/in)
    求41是第幾個數字(for/in)
    有幾個奇數和幾個偶數(for/of)
    最大數字和最小數字(for/of)
    
    
印出框架 第 x 個數字為 y(for/in)  
```javascript=
for(let key in numbers){
document.write(`第${key}個數字為${numbers[key]}`)
}
```
 求41是第幾個數字(for/in)
```javascript=
for(let key in numbers){
if(numbers[key]==41){
document.write(`41是第${key}個數字`)
    }
}
```
有幾個奇數和幾個偶數(for/of)
```javascript=
let odd=0;
let even=0;
for(let number of numbers){
    if(number%2==0){
        odd++;
    }else{
        even++;
    }
}
document.write(`奇數有 ${odd} 個，偶數有 ${even} 個`)

```
 最大數字和最小數字(for/of)
```javascript=
 let max=numbers[0]
 let min=numbers[0]
 for(let number of numders){
     if(number>max){
         number=max
         }
     if(number<min){
         number=min
         }
 }
 document.write(`最大${max}最小${min}`)
 ```
 
 ## 練習2
<p>假設某一公司有五種產品 A、B、C、D、E<br>
其單價分別為 12、16、10、14、15 元<br>
而該公司共有三位銷售員，他們在某個月份的銷售量如下所示</p> <table><thead><tr><th></th> <th>產品 A</th> <th>產品 B</th> <th>產品 C</th> <th>產品 D</th> <th>產品 E</th></tr></thead> <tbody><tr><td>銷售員 1</td> <td>33</td> <td>32</td> <td>56</td> <td>45</td> <td>33</td></tr> <tr><td>銷售員 2</td> <td>77</td> <td>33</td> <td>68</td> <td>45</td> <td>23</td></tr> <tr><td>銷售員 3</td> <td>43</td> <td>55</td> <td>43</td> <td>67</td> <td>65</td></tr></tbody></table> <p>請將上表的內容設定成二維陣列，變數數量和陣列格式不限，並依序完成下列各題</p> <ul><li>每一個銷售員的銷售總金額</li> <li>每一項產品的銷售總金額</li></ul>

```javascript=
let date=[[33,32,56,45,33],[77,3,68,45,23],[43.55.43.67.65]]
let price=[12,16,10,14,15]
let sell=[0,0,0]
let product=[0,0,0,0,0,]
/*每一個銷售員的銷售總金額*/
for (let i = 0; i < date.length; i++) {
   for (let j = 0; j < 5; j++) {
        sells[i] += date[i][j] * price[j]
   }
}
for (let i in sells) {
    document.write(`銷售員${parseInt(i) + 1}<br>${sells[i]}<br>`)
}
/*每一項產品的銷售總金額*/
 for (let i = 0; i < date.length; i++) {
    for (let j = 0; j < 5; j++) {
       products[j] += date[i][j] * price[j]
    }
 }
for (let i in products) {
    document.write(`<br>產品${parseInt(i) + 1}銷售總金額${products[i]}<br>`)
}
```