# 陣列&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>`)
}
```