---
# System prepended metadata

title: Codewars  - 解題紀錄 - 8 kyu

---

## 當前等級

![](https://www.codewars.com/users/QuantumParrot/badges/large)

***

## 雞湯

陷入自我懷疑時用來鼓勵自己的句子，很有用

    你不需要一開始就很厲害，但你要先開始才能變得厲害。　-- 六角學院・洧杰校長

    いつでも難しい方の道を選んでください。　-- 《金之國水之國》莎拉（這部好看，推）
    
    May your choices reflect your hopes, not your fears.　-- 曼德拉
    
    我們在想像中受的苦多過於現實中。　-- 山道ㄏ ... 塞內卡

***

## 題目

### 1\. [The Feast of Many Beasts](https://www.codewars.com/kata/5aa736a455f906981800360d)

    - 2023/10/13 (Black Friday!!)

#### 題目說明

+ 動物名的第一個字要等於食物名的第一個字，動物名的最後一個字要等於食物名的最後一個字

#### 我的解法

``` JavaScript
function feast(beast, dish) {
  return beast[0] === dish[0] && beast[beast.length-1] === dish[dish.length-1]
}
```

核心思路：取出字元 --> 比對

#### 自我檢討

`dish[dish.length-1]` 可以寫成 `dish.slice(-1)`

#### 其他解法

這題雖然不難，但是光是 "取出字元" 這個步驟，十個人就會有十個做法，是觸類旁通的大好機會！

1\. 直播班同學的解法 - 1 ( 我最喜歡的解法 )

``` JavaScript
return beast.startsWith(dish[0]) && beast.endsWith(dish[dish.length-1])
```

這個解法還可以玩各種排列組合～

2\. 直播班同學的解法 - 2

``` JavaScript
const regex = /^\w|\w$/g;
return beast.match(regex).join('') === dish.match(regex).join('')
```

原來正則表達式還有這種用法 👍

3\. 直播班同學的解法 - 3

``` JavaScript
return beast.at(0) === dish.at(0) && beast.at(-1) === dish.at(-1)
```

大致上思路都是一樣的，提取然後比對，可以運用的工具卻很多

希望有機會可以再操作它們～