陣列與資料處理
一筆訂單裡有多個品項、一次搜尋回傳 20 個聯絡人:這就是陣列。Make 預設一次處理一個 bundle;陣列還在盒子裡沒拆開時,後面模組常只能對到整包,或只對到第一筆。
Iterator:拆開
Iterator 把陣列拆成多個 bundle,後面模組對每一項各跑一次。Shopify 訂單的 line items、Google 試算表一次讀回的多列,都是典型用途。
代價是 operations 會乘上去:10 個品項、後面 3 顆動作,就可能是 30 次模組執行。拆之前先想:是否能在來源就只取需要的欄位。
Aggregator:合起來
Array Aggregator/Text Aggregator/Numeric Aggregator 把多個 bundle 收成一個(陣列、一段文字、一個加總)。常見模式是:
搜尋多筆 → 處理每一筆 → Aggregator 合成一封摘要信。
沒有 Aggregator,你可能會對同一個收件人寄出 20 封各一行的信。
函式:少開模組
對應欄裡可直接用函式,不必為每個小轉換加一顆模組:
- 文字:
substring、replace、lower - 陣列:
get、map、length;較新的還有差集/交集等(見官方影片) - 日期:
formatDate、parseDate - 條件:
if、ifempty
map() 可在不拆 Iterator 的情況下,從物件陣列抽出某個鍵,常能少燒一輪 operations。細節見 Academy Intermediate 的 get()/map() 課程。
路線之間傳值
Router 的各條路不會在末端自動合併。需要把 A 路結果拿到 B 路時,用 Set variable/Get variable(社群稱 Router Magic Formula)。Make 員工 Daniel Zrust 的文字說明:Magic Formula。較新的介面也有 If-Else 與 Merge 相關模組,見官方影音。
相關影音
官方示範陣列差集、交集,以及直接編輯 collection。約 9 分鐘,適合已經會 Iterator、想少寫臨時模組的人。
函式很多、對應欄開始難以維護時,可改看官方 Make Functions App(約 12 分鐘,清單在 官方影音)。
相關資料
- Make Intermediate
- 分流限制:篩選與分流