---
# System prepended metadata

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

---

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


# 設計魔劍三組

## 6/25：Day 14

平常都是小美到鎮上採買，今天小美想將採買的工作交給小明處理。

小美：等等回到鎮上，幫忙看到賣檸檬的買三顆、西瓜買一顆、如果看到賣奇異果的買 10 顆，桌上的錢可以直接拿去用。

小明（建構函式中...）

小明：所以桌上有多少錢呢？

小美：你就拿去就對了

小明（苦惱中，不知如何建立此函式，但還是默默地準備出門）

小明出門前，發現了地上居然有一本 ES6 秘笈，打開後看到左上角標註著 "MDN" Logo，又恰巧是參數的那一頁...

（小美欣慰著看著小明點點頭，小明卻苦惱著不知道該怎麼辦）

參數預設值：[https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Functions/Default_parameters](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Functions/Default_parameters)

其餘參數：[https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Functions/rest_parameters](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Functions/rest_parameters)

任務：

- 以下程式碼中僅能調整**函式所設置的參數**
- 試著透過參數預設值及其餘參數的方式完成此範例

```js
var myMoney = 0;
// money 需要給予預設值 500
function getMoney(money) {
  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');
```
---

### ClareDes.

```js
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:
>


### ClareDes.｜Day 11 (6/22)補交

```js
// 請將此段 var 宣告改為 let, const
const Ming = '小明';
const MingAge = 16;
let MingLocation = '真心鎮';
const　person = {
  name: '小明',
  location: '真心鎮'
}
let wallet = {
  money: 1000
}
// 需修改程式碼的結尾

// 後續程式碼，請藉此判斷使用 Let or Const
MingLocation = '真心鎮郊外';
person.location = '真心鎮郊外';
wallet = {};
```
> 助教回覆：作業做的很好哦，很正確唷 :+1:
>


### ClareDes.｜Day 12 (6/23)補交
```js
// 題目：1
// function sum(a, b) {
//   var c = a + b;
//   return c;
// }
// console.log(sum(5, 6));

const  sum = (a, b) => a + b;
console.log(sum(5, 6));


// // 題目：2
// function square(num) {
//   return num * num;
// }1
// var d = square(5);
// console.log(d);

const square = num => num * num;
console.log(square(5));


// // 題目：3
// setTimeout(function() {
//   console.log('延遲 10 毫秒');
// }, 10);

setTimeout(() => console.log('延遲 10 毫秒'),10);



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

var arr = [1, 2, 3];
var arr2 = arr.map((item, i) => item * 2);
console.log(arr2);



// // 題目：5
// var obj = {
//   fn: function fn2(a) {
//     return a * a;
//   }
// }
// console.log(obj.fn(10));

var obj = {
  fn: (a) => a * a
}
console.log(obj.fn(10));

```
> 助教回覆：作業做的很好哦，很正確唷 :+1:
>

---


### Karen

```js
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:
>

（補繳）6/24：Day 13
```js
// 請使用解構組合使 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
console.log(name,age)

// 請使用解構，將以下陣列分別取出為獨立變數 Ming, Auntie, Jay, Mei
var people = ['小明', '漂亮阿姨', '杰倫', '小美'];
var[Ming, Auntie, Jay, Mei] = people
console.log(Ming, Auntie, Jay, Mei)
```
> 助教回覆：作業做的很好哦，很正確唷 :+1:
>
### Ryan
```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=
var myMoney = 0;

function getMoney(money=500) {
  myMoney = money;
}

getMoney();

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');
// "買 3 個檸檬"
// "買 10 個西瓜"
// "小明剩下 40 元"
```

> 助教回覆：

