依關鍵字與價格查找產品
修改檔案:script.js
完成後看見:可以關鍵字、價格或兩者查找產品
CHAPTER 22 · PRACTICE WORKSPACE
完成可前後翻頁的產品列表
TASK STATUS
修改檔案:script.js
完成後看見:可以關鍵字、價格或兩者查找產品
修改檔案:script.js
完成後看見:查找結果每頁最多三筆,卡片與頁碼同步
修改檔案:script.js
完成後看見:首末頁按鈕正確停用,無查找結果時顯示 0 / 0 且兩鍵停用
WORKSPACE
先確認作品目前能做什麼、還缺什麼,再從 TASK-01 開始修改。
FOCUS TASK · TASK-01
比較:分頁應作用在查找結果上;先分頁再篩選會讓頁碼與結果數量不一致。
現在做:在 Checkpoint 1 先把 page 設成 3,再輸入「商品 2」並選擇「全部」;確認條件改變後 page 回到 1、getFilteredProducts() 只剩 1 筆。接著保持 page 1,分別選「低於 200 元」與「200 元以上」,確認 200 元的商品 3 只落在後者。
預期:關鍵字與價格都作用在完整 products 上,先得到 filteredProducts,再交給分頁;條件改變時 page 固定回 1,不會拿舊頁碼切出空白結果。
證據:記錄三組輸入(關鍵字、價格、兩者)的 filteredProducts 數量與 page,並指出每次都是先篩選、尚未分頁。
比較:只改一個查找條件時,另一個條件仍需保留,才能確認資料管線沒有被覆蓋。
現在做:先輸入「商品 4」並選「200 元以上」,確認結果只有商品 4;再清空關鍵字但保留價格條件,確認結果恢復為五筆(商品 3–7)。最後改回「全部」,確認兩個控制值都被正確保留與套用。
預期:清除一個條件不會把另一個條件重設;關鍵字、價格與兩者組合的結果都能由同一個 getFilteredProducts() 解釋。
證據:用三列表格記錄控制值、結果名稱與筆數,證明每次只改一個條件時另一個條件仍有效。
完成條件:DONE-01:可以關鍵字、價格或兩者查找產品;兩種查找操作可單獨或組合使用,條件變更後回第一頁
PRODUCT LIST
把一批產品資料,逐步變成可查找、可翻頁、守住邊界的列表。
關鍵字與價格條件會一路保留;每一階段只新增一個責任。
操作後請回頭看右側卡片與頁碼,確認畫面是否跟著狀態一起改變。
RESULTS
7 筆資料
CONTINUE
前往 Checkpoint 1,依要求完成「依關鍵字與價格查找產品」。
CHAPTER HANDOFF
接收第 21 章:沿用固定的 id、name、price rows 契約;本章的七筆 fixture 是可重現入口,不重新處理 GAS。
交給第 23 章:完成後帶著搜尋/價格/分頁狀態、0/0 空結果與首末頁 disabled 證據,下一章直接處理表單驗證與 POST,不重做列表狀態。
前往第 23 章:表單驗證、POST 與資料寫入