# 陣列與物件的應用
* 相同類型的資料可以一起擺在**陣列**`[]`裡面。
* 把想要詳細描述的資訊擺在**物件**`{}`裡面。
## 🚩讀取資料
* 遇到**陣列**用中括號`[]`,裡面填入數字,表示第幾筆。
* 遇到**物件**用點`.`,後面接想要讀取資料的屬性名稱。
## 🚩陣列包物件
### 👉🏻情境
> 巷口開了兩間水果攤,其中一攤的老闆叫Bob,擺了10顆芒果、8顆芭樂,另一攤的老闆叫Patrick,擺了7顆芒果、3顆西瓜。
### 程式
先宣告一個水果攤**陣列**。
```javascript=
let fruitStands = [];
```
再分別把兩間水果攤放進**陣列**,並詳細描述。
```javascript=2
let fruitStands = [
{ //第0筆
boss: "Bob", // 老闆名稱
isOpened: true, // 是否開店
mangoNum: 10, // 芒果數量
guavaNum: 8, // 芭樂數量
},
{ // 第1筆
boss: "Patrick", // 老闆名稱
isOpened: true, // 是否開店
mangoNum: 7, // 芒果數量
watermelonNum: 3, // 西瓜數量
}
];
```
#### 👉🏻情境
>想知道有幾間水果攤。
#### 程式
用`.length`看看有幾筆資料。
```javascript=16
fruitStands.length; // 2,表示有兩筆資料
```
#### 👉🏻情境
>想知道Patrick水果攤賣幾顆西瓜。
#### 程式
首先,找到Patrick水果攤是**陣列**中第1筆資料。
```javascript=17
fruitStands[1];
//{boss: "Patrick", isOpened: true, mangoNum: 7, watermelonNum: 3}
```
接著,在**物件**Patrick水果攤中找到西瓜數量(watermelonNum)。
```javascript=19
fruitStands[1].watermelonNum; // 3
```
<br>
## 🚩物件包物件
### 👉🏻情境
>有一個冰箱,冷凍庫溫度-18度,冰了牛肉,甜點有冰淇淋,另外冷藏6度,放了水果芒果,還有飲料可樂。
### 程式
先宣告一個冰箱**物件**。
```javascript=
let refrigerator = {};
```
再把冷凍庫和冷藏用**物件**方式塞進去,並描述裡面放了什麼。
```javascript=2
let refrigerator = {
freezer:{ // 冷凍庫
degrees: -18, // 溫度
meat: "beef", // 牛肉
dessert: "ice cream" // 甜點冰淇淋
},
fridge:{
degrees: 6, // 溫度
fruit: "mango", // 芒果
beverage: "cola" // 可樂
}
};
```
#### 👉🏻情境
>想知道冷凍溫度幾度。
#### 程式
首先,找到冰箱中的**物件**冷凍庫(freezer)。
```javascript=16
refrigerator.freezer;
// {degrees: -18, meat: "beef", dessert: "ice cream"}
```
接著,在冷凍庫中找到屬性溫度(degrees)。
```javascript=19
refrigerator.freezer.degrees; // -18
```
## 🚩搭配`if`條件判斷
### 👉🏻情境
> 志明今年18歲,氣溫如果高於30度,就會買一杯飲料解暑,氣象說今天33度,志明就要去巷口買飲料,順便問了18歲的春嬌要不要喝,春嬌拒絕。
#### 程式
首先,用一個**陣列**把**物件**志明與春嬌裝起來。
```javascript=
let people = [
{
name: "志明",
age: 18,
drink: ""
},
{
name: "春嬌",
age: 18,
drink: "不喝飲料"
}
];
```
接著,用`if`判斷志明要不要喝飲料,並找到志明要不要喝飲料的那筆資料賦予值。
```javascript=13
let degrees = 33; // 今天氣溫33度
if(degrees > 30){ // 判斷溫度是否高於30度
people[0].drink = "要喝飲料"; // 第0筆的drinks
} else {
people[0].drink = "不喝飲料";
}
```
最後,志明出門買飲料。
```javascript=19
console.log(people[0].drink); // 輸出要喝飲料
```
<br><br><br>
#### 💡
* `選出來的資料可以賦予變數`。
<br><br><br>
-
{%hackmd BJeHIgYzF %}
<a href="/VPd7dnXjQYeTuTXo8q0-qw" class="link-card">
<div class="txt"><i class="fa fa-angle-double-left"></i> 上一篇 </div>
<div>《JavaScript》JSON</div>
</a>
<a href="/kQaWdIFoTSuGW4eWCxTu-g" class="link-card-next">
<div class="txt">下一篇 <i class="fa fa-angle-double-right"></i><br></div>
<div>《JavaScript》函式</div>
</a>
###### tags: `JavaScript`