本篇記錄物件與陣列的綜合應用,會使用到以下內容,順便複習一下寫法:
變數 var
函式 function
1
| function name(params) {}
|
陣列 array
物件 object
1 2 3 4
| var object = { text: "string", number: 10, };
|
物件 + 函式
物件內建立函式,可以透過函式的功能來做運算,讓物件成為一系列的內容,會相當好用。
以一個家庭為例,程式碼如下:
1 2 3 4 5 6 7
| var home = { dad: "Tim", mom: "Min", son: ["Joshua", "John"], chair: 4, table: 3, };
|
如果要在物件內加入函式,若要顯示:「Tim,該吃晚餐囉!」可以這樣寫:
1 2 3 4 5 6 7 8 9 10 11 12 13
| var home = { dad: "Tim", mom: "Min", son: ["Joshua", "John"], chair: 4, table: 3, dinner: function () { console.log(home.dad + ",該吃晚餐囉!"); }, };
home.dinner();
|
就會得到 Tim,該吃晚餐囉!的結果
存取物件中函式資料
倘若今天要計算物件裡面桌子椅子的總數量,可以在物件中建立另一個函式,做為計算的功能,可以這樣寫:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| var home = { dad: "Tim", mom: "Min", son: ["Joshua", "John"], chair: 4, table: 3, dinner: function () { console.log(home.dad + ",該吃晚餐囉!"); }, furniture: function () { var furnitureNum = home.chair + home.table; console.log(furnitureNum); }, };
home.dinner(); home.furnitureNum();
|
陣列 + 物件
可以利用陣列整合資料的觀念,把物件變成陣列資料,如果今天有兩個家庭為例,程式碼會如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var homes = [ { dad: "Tim", mom: "Min", son: ["Joshua", "John"], chair: 4, table: 3, }, { dad: "Jerry", mom: "Nancy", son: ["Ethan", "Elijah", "Emma"], chair: 5, table: 4, }, ];
|
因為是物件,所以在大括號中間還是要用逗號隔開
陣列中加入物件,物件前面就不用再寫一個變數名稱,因為直接在陣列裡面變成資料了
存取陣列中的物件資料
延續上方程式碼,今天要存取物件資料的寫法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| var homes = [ { dad: "Tim", mom: "Min", son: ["Joshua", "John"], chair: 4, table: 3, }, { dad: "Jerry", mom: "Nancy", son: ["Ethan", "Elijah", "Emma"], chair: 5, table: 4, }, ];
console.log(homes[0].dad);
console.log(homes[1].son[2]);
|
心得
- 要把變數、函式、陣列、物件四個寫法搞清楚。
- 因為四個東西有相關聯,要把不同的存取方法搞清楚,也要把彼此程式綜合應用時讀取的方式也要搞清楚,
- 存取資料的方法要想得直覺一點,不要想得太複雜,不然會卡關。
- 這一篇要連同前面的單元重複複習幾次,要熟悉。