跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

去重與分組統計

  • Set:快速去除重複值。
  • reduce:把陣列彙總成物件,適合做分組計數或加總。
  • Object.entries:把物件轉回陣列,方便再排序或輸出。

小節:去掉重複客戶 email

小節:分組計算每個城市的訂單數

AI 協作:學了這個,跟 AI 怎麼配合?

去重和分組是做報表的基本功。AI 寫邏輯,但「怎麼定義重複、怎麼分組」你說了算。

你的人類優勢:

  • 你定義「重複」的標準:名字一樣算重複?還是 email 一樣才算?
  • 你知道分組維度:按客戶、按日期、按類別

可以這樣跟 AI 說:

這份客戶清單有重複的 email,幫我去重(保留最新那筆),然後按城市分組統計人數。

練習題

Capstone:綜合練習

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩

挑戰任務

Task 1

用 Set 去除陣列 ['A','B','A','C'] 的重複,用 join(',') 串接後印出

Task 2

把訂單陣列 [{city:'Taipei',amount:500},{city:'Taipei',amount:300},{city:'Tainan',amount:200}] 分組加總金額,輸出物件 {Taipei:800,Tainan:200}

Task 3

將分組結果 {Taipei:2,Taichung:1} 用 Object.entries 轉成陣列並逐行印出 '城市:數量'

Task 4

給定訂單陣列 [{sku:'A',qty:2,price:100},{sku:'B',qty:1,price:300},{sku:'A',qty:3,price:100},{sku:'B',qty:2,price:300}],用 reduce 計算每個 sku 的總金額(qty*price),再用 Object.entries + sort 找出金額最高的 sku 並印出

Task 5

給定 CSV 字串 'name,city\nAmy,Taipei\nBob,Tainan\nCarol,Taipei\nDave,Tainan',用 split + map 解析成物件陣列,再用 reduce 按 city 分組統計人數,印出結果

BackTake the Exam →