# 🏅 Day 4 - 陣列操作 1、Bootstrap font-size
### 教學
這題需要額外理解的知識點為「[callback 函式](https://developer.mozilla.org/zh-TW/docs/Glossary/Callback_function)」,可以簡單的理解為:「把函式作為參數調用」。
舉例:
```js=
function greeting(arr) {
alert('Hello ' + arr.name);
}
// callback 函式
function processUserInput(callback, arr) {
callback(arr);
}
let arr = {name: "Jordan"};
// 在 callback 函式中調用 greeting 函式,並把 arr 也一併代入
processUserInput(greeting, arr);
```
使用 callback 的目的與好處主要有以下兩點:
- 彈性與重用性
- 分離關注點
以上方範例來說,我們透過 greeting 函式把 Hello 字串組合名稱的部分獨立出來,將其作為參數帶入 processUserInput 函式執行
這樣只要根據需求修改帶入的 callback 函式,提升重用性的同時,讓每個函式只專注做一件事情,整體程式碼結構也會更加清晰唷!
題目(使用 CodePen 作答)
---
以下 crowdAge 為部分民眾的年紀資料,請修改程式碼、篩選出屬性 age > 18 的陣列元素,並將它們一一加入 filterResult 這個陣列中。**(可以使用 [push()](https://wcc723.github.io/development/2020/10/04/js-array-methods/#Array-prototype-push) 或是 [filter() 函式](https://www.casper.tw/javascript/2017/06/29/es6-native-array/#Array-prototype-filter))**
```js=
let crowdAge = [
{
name: 'Rick',
age: 17
},
{
name: 'Jane',
age: 25
},
{
name: 'Jordan',
age: 19
},
{
name: 'Jack',
age: 7
},
{
name: 'Reol',
age: 27
}
];
// callback 函式
function ageFilterCB(cb, arr) {
return cb(arr);
}
function ageFilter(arr) {
/* 只能在此插入程式碼 */
}
let filterResult = [];
filterResult = ageFilterCB(ageFilter, crowdAge);
console.log(filterResult); /* 為陣列,內容包含屬性 age > 18 的 crowdAge 元素 */
```
Bootstrap font-size
---
在 Bootstrap 中可以使用 `.h1` ~ `.h6` 或是 `.fs-*` class 來直接調整字體大小設定,
兩者的差異主要在 `.h1` ~ `.h6` 標題類別使用了 `font-size`、`font-weight`、`line-height`,而 `.fs-*` 只有 `font-size` 的設定
> 注意:
> 1. 兩者都會有預設響應式設定(會隨著視窗寬度改變文字大小)
> 2. Bootstrap h1 ~ h6 標籤也會有預設字體設定,設定文字樣式時不要直接使用標籤來設定字體大小,請使用 .h1 ~ .h6 來設定哦
> 舉例來說:
> 想要在次重要的標題使用 h4 的字體大小設定,
> 正確寫法 -> `<h2 class="h4"> Title </h2>`
> (h1 ~ h6 標籤請以重要程度依序使用)
> 3. 實際運用時可以到 Bootstrap 變數中改變字體大小的預設設定(`$h1-font-size`、`$font-sizes`)
可以運用此 [CodePen](https://codepen.io/yen-kg/pen/jOgZKxE) 觀察他們之間的差異,並嘗試自行運用看看
可以參考:[.h1 ~ .h6](https://getbootstrap.com/docs/5.3/content/typography/#headings) 、 [.fs-*](https://getbootstrap.com/docs/5.3/utilities/text/#font-size)
<!-- 解答:
function ageFilter(arr) {
let target = arr.filter(item => item.age > 18);
return target;
}
-->
<!-- 解法二
function ageFilter(arr) {
let target = [];
arr.forEach(item => {
if(item.age > 18) {
target.push(item);
};
});
return target;
}
- Bootstrap -
可以 fork https://codepen.io/yen-kg/pen/jOgZKxE
調整 class 觀看差異
-->
---
<!-- | 名字 |[Codepen](連結) | -->
| 名字 | 連結 |
| ----------- | -------------------------------------------------------------------------------- |
| Hugh | [Codepen](https://codepen.io/Hugh-Chen/pen/bNpPdme) |
| Tetsu | [Codepen](https://codepen.io/ttgchang/pen/myPNbjg) |
| liwen | [Codepen](https://codepen.io/liwenchiou/pen/YPqmKmM?editors=1000) |
| RUDY | [Codepen](https://codepen.io/Rudy-crw/pen/dPMxbEa?editors=1010) |
| Nooooora | [CodePen](https://codepen.io/Nora-Ch/pen/ZYWgEBx) |
| Chia | [Codepen](https://codepen.io/Chia-the-encoder/pen/QwNeWbd) |
| Marco | [CodePen](https://codepen.io/MarcoChiu/pen/YPqmzNK) |
| 叮咚 | [CodePen](https://codepen.io/pinchieh-lin/pen/pvyMowp?editors=1111) |
| Rogan | [CodePen](https://codepen.io/RoganHsu/pen/vEGqrrP?editors=1011) |
| bon | [CodePen](https://codepen.io/pengpon/pen/ogxKNQg) |
| 7Red | [CodePen](https://codepen.io/cch2655/pen/XJdvWBo) |
| Naojun | [CodePen](https://codepen.io/NAOJUN/pen/WbwVbZa) |
| Eileen | [CodePen](https://codepen.io/Eileen-io/pen/wBGVaVM) |
| jchunnn | [CodePen](https://codepen.io/jchunnn/pen/JoXgGBR) |
| andy | [CodePen](https://codepen.io/ewnblckz-the-styleful/pen/EaKqKRb?editors=1011) |
| 7lun | [CodePen](https://codepen.io/mfyvqhsn-the-bold/pen/NPNQNBq?editors=1011) |
| Wafa | [CodePen](https://codepen.io/dqricwgo-the-reactor/pen/OPNKNWq?editors=0011) |
| 星雪糖 | [CodePen](https://codepen.io/vfpofbgm-the-scripter/pen/VYaojXw?editors=1011) |
| Percy | [CodePen](https://codepen.io/Percy-Ku/pen/XJdvKyo?editors=1111) |
| cindy | [CodePen](https://codepen.io/a50134/pen/azNemwO?editors=1112) |
| 登登登 | [CodePen](https://codepen.io/Duncanin/pen/gbrVwNj?editors=1010) |
| 小懿 | [CodePen](https://codepen.io/YT-the-vuer/pen/bNpXVQr?editors=0011) |
| YUCCC | [CodePen](https://codepen.io/taroooo/pen/zxqgKLv?editors=1111) |
| An | [CodePen](https://codepen.io/bzrpsbjq-the-encoder/pen/qEZeaRb?editors=1011) |
| FangFang | [CodePen](https://codepen.io/Fang-the-selector/pen/XJdvpdq?editors=1111) |
| wind | [CodePen](https://codepen.io/wind7y/pen/wBGVdEv) |
| DebbyYang | [CodePen](https://codepen.io/Debby-Yang/pen/ogxKWGq) |
| JiaMori | [CodePen](https://codepen.io/jiamori/pen/MYyNmNo) |
| tanuki | [CodePen](https://codepen.io/tanuki320/pen/ZYWgamj?editors=1011) |
| Tippy | [CodePen](https://codepen.io/Ektodor-Wang/pen/MYyNrrR) |
| Sherry | [CodePen](https://codepen.io/twvyqojd-the-typescripter/pen/zxqgRxB?editors=1010) |
| Leonard | [CodePen](https://codepen.io/hyyfjqra-the-sans/pen/EaKqOrr) |
| cks40660 | [CodePen](https://codepen.io/CKS40660/pen/azNegZK) |
| Jenna | [CodePen](https://codepen.io/abiscc14/pen/azZodyo) |
| Zem | [CodePen](https://codepen.io/dgldwqlg-the-vuer/pen/GgqKdGE) |
| ying | [CodePen](https://codepen.io/Lara-Lin/pen/VYjZGpv?editors=1010) |
| esther | [CodePen](https://codepen.io/biunpujm-the-flexboxer/pen/OPXLorz?editors=1111) |
| Vergil | [CodePen](https://codepen.io/aglgvsie/pen/xbOKyQL) |
| 社子畢卡索 | [CodePen](https://codepen.io/pen?template=wBWwROm) |
| 老屠 | [CodePen](https://codepen.io/fsgfxvlb-the-selector/pen/LEZPayJ?editors=1011) |
| 地瓜 | [CodePen](https://codepen.io/ChippyYU/pen/gbMOOwJ?editors=1010) |
| KOMATSU PEI | [CodePen](https://codepen.io/Komatsu2021/pen/azZogKj?editors=1011) |
| Owen He | [CodePen](https://codepen.io/owen1120/pen/zxBYEqx?editors=0011) |
| nonwa_jeff | [codepen](https://codepen.io/nonwaaa/pen/LEZYjBE) |
| 蜜桃果茶 | [Codepen](https://codepen.io/jia-yiii/pen/MYeWVJj) |
| 平平 | [Codepen](https://codepen.io/ypinpin/pen/NPrWVMe) |
| Eric | [Codepen](https://codepen.io/wc-su/pen/myEyPOw) |
| RyanC | [Codepen](https://codepen.io/RyanYD/pen/raLaMmK) |
| 伊迪 | [Codepen](https://codepen.io/sorryFish/pen/LEZEemK) |
| kashiwatei | [Codepen](https://codepen.io/kashiwatei/pen/ogLgEYx?editors=0011) |
| 舜仁 | [Codepen](https://codepen.io/shunjen/pen/MYeYQxg)|
| Michelle | [Codepen](https://codepen.io/bastar_dize/pen/JoKoBBp?editors=1011)|
| Charislai | [Codepen](https://codepen.io/charislai/pen/RNRNOGz)|
| ZoeKang |[Codepen](https://codepen.io/byehywmx-the-animator/pen/Ggqgamm)|
| Jin |[Codepen](https://codepen.io/Jin-L/pen/ogxKgmw)|
| 主委加碼啦幹 |[Codepen](https://codepen.io/popbob-the-bashful/pen/dPXoPZL?editors=1000)|
| 冠翔 |[Codepen](https://codepen.io/hsrfcdrx-the-bold/pen/azZOBNr)|
| bill0530 |[Codepen](https://codepen.io/rexvfzmf-the-typescripter/pen/YPWXLEM)|
| Miikaa |[Codepen](https://codepen.io/Miikaa/pen/qENdLxJ?editors=1111)|
| 小趴 | [Codepen](https://codepen.io/papa2415/pen/gbMaeNQ)|
| 蛋白 | [Codepen](https://codepen.io/sjlu-0/pen/XJKXmrw)|
|TWLeoC|[Codepan](https://codepen.io/TWLeoC/pen/jErBpLE)|
| Wen | [Codepen](https://codepen.io/hsiao-kevin/pen/QwEgwvN?editors=1111)|
| Doreen | [Codepen](https://codepen.io/cuei-sian-Wang/pen/NPrwNqW)|