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