用索引與 render 顯示目前作品
條件:重新整理後對照 slides[0],確認標題、描述與張數都由 renderSlide() 寫入;前後切換留到下一步。 驗收:標題、描述與張數來自 slides[index]
CHAPTER 17 · 180 MINUTES
作品資料已在陣列中,但需要一個索引記住目前項目,並在前後切換時把正確資料重新顯示。
LEARNING GOALS
條件:重新整理後對照 slides[0],確認標題、描述與張數都由 renderSlide() 寫入;前後切換留到下一步。 驗收:標題、描述與張數來自 slides[index]
條件:連續切到最後一張再按下一張,並從第一張按上一張,確認首尾循環。 驗收:最後一張可回第一張,第一張可回最後一張
條件:連按隨機提示數次,確認每次結果都來自有效提示清單。 驗收:每次點擊顯示一項有效提示
輸入:第 16 章產物:可顯示作品清單並記住訪客名字的小功能
本章輸出:可前後切換並抽取練習提示的原生 JavaScript 輪播
產物類型:mainline;後續用途:第 18 章
PROBLEM & ANALOGY
索引像書籤,render 像把書籤所在頁攤開;亂數像從籤筒抽出一個有效編號,不能超過籤的數量。
本章要解決:作品資料已在陣列中,但需要一個索引記住目前項目,並在前後切換時把正確資料重新顯示。
接住上一章:第 16 章已能用陣列保存資料並以 render 顯示清單。
合回共同作品:本章成果必須回到同一份作品集檢查,不另開一個無關小作品。
SCOPE
用索引與 render 顯示目前作品;讓上一張與下一張首尾相接;從提示陣列抽出有效亂數項目。
能辨識事件只改資料、render 統一改畫面的分工。
不教自動播放、觸控滑動或第三方輪播套件。
本章術語:index、render、length、modulo、Math.random、Math.floor。遇到英文先回到畫面責任,不要求背拼字。
CORE IDEAS
DEBUG
課堂刻意錯誤:下一張直接 index = index + 1,切到最後後畫面出現 undefined;用陣列長度與 modulo 修正首尾循環。
固定順序:先重現 → 讀 Console/Styles → 確認檔案與元素 → 一次只修一處 → 重跑原操作。
先查:檢查 currentIndex 有改,再確認事件後呼叫 render。
先查:代入邊界數字,確認不會得到 -1 或陣列長度。
先查:檢查亂數範圍、Math.floor 與提示陣列資料。
PRACTICE CONTRACT
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:標題、描述與張數來自 slides[index]
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:最後一張可回第一張,第一張可回最後一張
檔案:script.js
位置:依任務文字搜尋對應元素或函式
結果:每次點擊顯示一項有效提示
EVIDENCE
目前畫面由 slides[______] 經過 ______ 渲染;邊界用 ______ 循環,提示從 ______ 抽出。
不要只展示中間幾張成功;首張上一張與末張下一張是最重要的證據。
連按下一張走過首尾、再按上一張回捲,最後抽三次提示並解釋索引有效範圍。
下一章:第 18 章會加入時間狀態,讓畫面能按固定間隔更新。