---
# System prepended metadata

title: 設計魔劍三組
tags: [JavaScript 實戰班, ' Day15']

---

---
tags: JavaScript 實戰班, Day15
---


# 設計魔劍三組

## 6/26：Day 15

來到鎮上的小明忘了自己被通緝的身份，傻傻的到在市集內採買所需要的蔬果，當採買完畢以後發現有幾位警察正在跟蹤他，小明想趁著到暗巷內結印準備施展開溜之術時，但越緊張的情況下越容易施展失敗（字數太多惹）。

在危急時刻，小美快速駕駛卡車出現，準備載走逃跑中的小明...

ES6 新增的縮寫方式，可以在運行結果相同的情況下，大幅減少程式碼的撰寫，可參考：

[https://wcc723.github.io/javascript/2017/12/23/javascript-short-hand/](https://wcc723.github.io/javascript/2017/12/23/javascript-short-hand/)

任務：

- 將以下的函式進行縮寫
- 將水果、剩餘的零錢及小明，透過縮寫加入到小美的卡車上

```js
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  run: function() {
    console.log('拔腿跑')
  }
}

const truck = {
  driver: '小美',
  drive: function () {
    console.log('快溜喔');
  },
};
```
---

### Vivian Chiang
```javascript=
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  run () {
    console.log('拔腿跑')
  }
}

const truck = {
  driver: '小美',
  drive () {
    console.log('快溜喔');
  },
  fruits,
  person,
  myMoney
};
console.log(truck);
```
> 助教回覆：作業做的很好哦，物件加入、物件函式縮寫的都方法很正確 :+1:


>

#### 6/24：Day 13 補交
```javascript=
// 請使用解構組合使 arr2 變成為 [1, 2, 3, 4, 5, 6] 的結果
let arr = [1, 2, 3];
let arr2 = [...arr, 4, 5, 6]; // [1, 2, 3, 4, 5, 6]
console.log(arr2);

// 請使用解構組合以下兩個陣列為 [1, 2, 3, 4, 5, 6] 的結果
let nums1 = [1, 2, 3];
let nums2 = [4, 5, 6];
let nums3 = [...nums1, ...nums2];
console.log(nums3);

// 請使用解構，取出 name 及 age 的變數
const person = {
  name: '小明',
  age: 16
}
const {name, age} = person;
console.log(name); // '小明'
console.log(age); // 16

// 請使用解構，將以下陣列分別取出為獨立變數 Ming, Auntie, Jay, Mei
let people = ['小明', '漂亮阿姨', '杰倫', '小美'];
let [a, b, c, d] = people;
console.log(a); // '小明'
console.log(b); // '漂亮阿姨'
console.log(c); // '杰倫'
console.log(d); // '小美'
```
> 助教回覆：作業做的很好哦，作業寫法很正確唷 :+1:


#### 6/25：Day 14 補交
```javascript=
var myMoney = 0;
// money 需要給予預設值 500
function getMoney(money = 500) {
  myMoney = money;
}
getMoney();
// console.log(myMoney);

// fruits 是一個陣列
function buySomething(...fruits) {
  fruits.forEach((item) => {
    if ('lemon' === item) {
      console.log('買 3 個檸檬');
      myMoney -= 60;
    } else if ('watermelon' === item && !'賣奇異果的') {
      console.log('買 1 個西瓜');
      myMoney -= 40;
    } else if ('watermelon' === item && '賣奇異果的') {
      console.log('買 10 個西瓜');
      myMoney -= 400;
    }
  });
  console.log(`小明剩下 ${myMoney} 元`)
}

buySomething('lemon', 'watermelon', 'kiwi');
```
> 助教回覆：作業做的很好哦，作業寫法很正確唷 :+1:
>

---

### ClareDes.
```js
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  //縮寫
  run () {
    console.log('拔腿跑')
  }
}

const truck = {
  driver: '小美',
  //縮寫
  drive () {
    console.log('快溜喔');
  },
  //解構
  ...fruits,
  //物件縮寫，當屬性:值都一樣時，可以不用寫兩次
  myMoney,
  ...person
};
console.log(truck);
```
>助教回覆：作業做的很好哦，物件加入、物件函式縮寫的都方法很正確 :+1:

>
---

### Ryan
```javascript=
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  //這裡縮寫 移除 冒號和 function
  run () {
    console.log('拔腿跑')
  }
}

const truck = {
  driver: '小美',
  drive: function () {
    console.log('快溜喔');
  },
  // 用解構方式 直接將 person 的物件內容 加入到 truck
  ...fruits,
  // ES6 中如果物件名稱與屬性名稱相同時，則不需要寫兩次，可以改成寫一次即可。
  myMoney,
  ...person   
};
console.log(truck);
```
> 助教回覆：作業做的很好哦，物件加入的方法很正確 :+1:
補充一下 drive: function () {} 這個物件中的函式，可以縮寫成
drive(){}
---

### Karen
```javascript=
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  run() {
    console.log('拔腿跑')
  }
}

const truck = {
  fruits,
  myMoney,
  person,
  driver: '小美',
  drive() {
    console.log('快溜喔');
  },
};

```
> 助教回覆：作業做的很好哦，物件加入、物件函式縮寫的都方法很正確 :+1:
>

補繳 6/23：Day 12任務
```javascript=
// 題目：1
const sum = (a, b) => a + b
console.log(sum(5, 6));

// 題目：2
const square = num => num * num;
var d = square(5);
console.log(d);

// 題目：3
setTimeout(() =>
  console.log('延遲 10 毫秒'), 10)

// 題目：4
var arr = [1, 2, 3];
var arr2 = arr.map(item => item * 2);
console.log(arr2);


// 題目：5
var obj = {
  fn: a => a * a
}
console.log(obj.fn(10));
```
> 助教回覆：作業做的很好哦，作業寫法很正確唷 :+1:
>
---

---

### Jerry
```javascript=
const fruits = {
  watermelon: 10,
  lemon: 3
};
const myMoney = 40;

const person = {
  name: '小明',
  run: function() {
    console.log('拔腿跑')
  }
}

const truck = {
  driver: '小美',
  drive: function () {
    console.log('快溜喔');
  },
  ...fruits,
  myMoney,
  ...person
};

console.log(truck);
```

> 助教回覆：作業做的很好哦，物件加入的方法很正確 :+1:
補充一下 drive: function () {} 這個物件中的函式，可以縮寫成
drive(){}

補繳 6/24：Day 13任務
```javascript=
// 請使用解構組合使 arr2 變成為 [1, 2, 3, 4, 5, 6] 的結果
var arr = [1, 2, 3];
var arr2 = [...arr, 4, 5, 6]; // [1, 2, 3, 4, 5, 6]
console.log(arr2);

// 請使用解構組合以下兩個陣列為 [1, 2, 3, 4, 5, 6] 的結果
var nums1 = [1, 2, 3];
var nums2 = [4, 5, 6];
var nums3 = [...nums1 ,...nums2];
console.log(nums3);

// 請使用解構，取出 name 及 age 的變數
const person = {
  name: '小明',
  age: 16
}
let {name , age} = person;


// 請使用解構，將以下陣列分別取出為獨立變數 Ming, Auntie, Jay, Mei
var people = ['小明', '漂亮阿姨', '杰倫', '小美'];
let [Ming, Auntie, Jay, Mei] = people;
```
> 助教回覆：作業做的很好哦，作業寫法很正確唷 :+1:
>


補繳 6/25：Day 14任務
```javascript=
var myMoney = 0;
// money 需要給予預設值 500
function getMoney(money = 500) {
  myMoney = money;
}
getMoney();


// fruits 是一個陣列
function buySomething(...fruits) {
  fruits.forEach((item) => {
    if ('lemon' === item) {
      console.log('買 3 個檸檬');
      myMoney -= 60;
    } else if ('watermelon' === item && !'賣奇異果的') {
      console.log('買 1 個西瓜');
      myMoney -= 40;
    } else if ('watermelon' === item && '賣奇異果的') {
      console.log('買 10 個西瓜');
      myMoney -= 400;
    }
  });
  console.log(`小明剩下 ${myMoney} 元`)
}

buySomething('lemon', 'watermelon', 'kiwi');
```
> 助教回覆：作業做的很好哦，作業寫法很正確唷 :+1:
>

---

### Yoyo

```javascript=
const truck = {
  driver: '小美',
  drive: function () {
    console.log('快溜喔');
  },
  person,myMoney,fruits
};
```


> 助教回覆：作業做的很好哦，物件加入的方法很正確 :+1:
補充一下 drive: function () {} 這個物件中的函式，可以縮寫成
drive(){}

