練習運用 Array 的各種函式
目標
- 共提供四組資料
- inventors:first(名)、last(姓) 、year(出生日期)、passed(死亡日期)
- wiki 網站的 html :網址連結
- people:逗點分隔的姓名(firstName, lastName)
- data:提供的一組包含重覆資料的陣列
- 根據不同需求條件篩選出正確的資料
練習題目
inventors 的資料:
- 篩選出於 1500~1599 年間出生的 inventor (year in 1500-1599)
- 將 inventors 的 firstname 與 lastname 組合成一個陣列
- 將 inventors 依據「生日」由大至小排序
- 加總所有 inventor 的年齡
- 將 inventors 依據「年齡」由大至小排序
wiki 網站的 html:網址連結
- 列出 wiki 中巴黎所有包含’de’的路名
people 的資料:
- 依據 lastName 排序所有 people 的資料
data 的資料:
- 分別計算 data 內每個種類的數量
成品
See the Pen
JS30/04 - Array Cardio Day 1 by Bryan Hsaio (@bryan-hsaio)
on CodePen.
inventors 題目
1 | const inventors = [ |
Q:篩選出於 1500~1599 年間出生的 inventor (year in 1500-1599)
A:透過 filter 篩選出符合條件的資料,最終回傳一個新陣列
1 | // Array.prototype.filter() |
Q:將 inventors 的 firstname 與 lastname 組合成一個陣列
A:透過 map 將原始資料加工後,最終回傳一個新陣列
1 | // Array.prototype.map() |
Q:將 inventors 依據「生日」由大至小排序
A: 依照「生日」大小重新排序(return 值: -1 排前面 , 1 排後面)
1 | // Array.prototype.sort() |
Q:加總所有 inventor 的年齡
A: 籍由 reduce 加總所有的年齡
1 | // Array.prototype.reduce() |
Q:將 inventors 依據「年齡」由大至小排序
A:依照「年齡」大小重新排序(return 值: -1 排前面 , 1 排後面)
1 | // 5. Sort the inventors by years lived |
wiki-html 題目
Q:列出 wiki 中巴黎所有包含’de’的路名
A:練習 展開運算子(Spread Operator)、map()、filter()、includes() 搭配使用
1 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name |
people 題目
Q:依據 lastName 排序所有 people 的資料
A:練習 解構賦值(Destructuring Assignment)、sort() 運用
1 | // 7. sort Exercise |
data 題目
Q:分別計算 data 內每個種類的數量
A:練習 reduce() 運用
1 | // 8. Reduce Exercise |