# 陣列與迴圈作業 ## 指示 完成以下練習以練習使用陣列與迴圈。每個練習都建立在課程概念之上,並鼓勵您運用不同的迴圈類型與陣列方法。 ### 練習 1:數字模式產生器 建立一個程式,列出介於 1 到 20 之間每隔 3 個的數字並印出到主控台。 **需求:** - 使用帶有自訂增量的 `for` 迴圈 - 以對使用者友善的格式顯示數字 - 加入描述性註解解釋您的邏輯 **預期輸出:** ``` 3, 6, 9, 12, 15, 18 ``` > **提示:** 修改 for 迴圈中的迭代表達式以跳過數字。 ### 練習 2:陣列分析 建立一個包含至少 8 個不同數字的陣列,並撰寫函式來分析資料。 **需求:** - 建立一個名為 `numbers`,包含至少 8 個值的陣列 - 撰寫 `findMaximum()` 函式回傳最大數字 - 撰寫 `findMinimum()` 函式回傳最小數字 - 撰寫 `calculateSum()` 函式回傳所有數字的總和 - 測試每個函式並顯示結果 **加分挑戰:** 建立一個函式找出陣列中第二大的數字。 ### 練習 3:字串陣列處理 建立一個您最喜歡的電影/書籍/歌曲的陣列,並練習不同的迴圈類型。 **需求:** - 建立一個至少包含 5 個字串值的陣列 - 使用傳統 `for` 迴圈以編號(1. 項目名稱)方式顯示項目 - 使用 `for...of` 迴圈以大寫顯示項目 - 使用 `forEach()` 方法計算並顯示字元總數 **範例輸出:** ``` Traditional for loop: 1. The Matrix 2. Inception 3. Interstellar For...of loop (uppercase): THE MATRIX INCEPTION INTERSTELLAR Character count: Total characters across all titles: 42 ``` ### 練習 4:資料篩選(進階) 建立一個程式處理代表學生的物件陣列。 **需求:** - 建立至少包含 5 個學生物件的陣列,物件屬性包含:`name`、`age`、`grade` - 使用迴圈找出年齡 18 歲以上的學生 - 計算所有學生的平均成績 - 建立一個新陣列,只包含成績超過 85 的學生 **範例結構:** ```javascript const students = [ { name: "Alice", age: 17, grade: 92 }, { name: "Bob", age: 18, grade: 84 }, // 添加更多學生... ]; ``` ## 測試您的程式碼 透過以下方式測試您的程式: 1. 在瀏覽器主控台執行每個練習 2. 驗證輸出是否符合預期結果 3. 使用不同資料集進行測試 4. 確認您的程式能處理邊界案例(空陣列、單一元素) ## 繳交指南 請於繳交時包含: - 每個練習具有良好註解的 JavaScript 程式碼 - 顯示程式執行的截圖或文字輸出 - 簡短說明您為每個任務選擇的迴圈類型及理由 ## 評分標準 | 標準 | 優秀(3 分) | 尚可(2 分) | 需改進(1 分) | | -------------- | ---------------------------------- | ------------------------------ | ------------------------------- | | **功能** | 所有練習正確完成且包含加分挑戰 | 所有必需練習皆正確執行 | 部分練習未完成或含有錯誤 | | **程式碼品質** | 程式碼整潔、有組織且變數名稱具描述性 | 程式碼可運作,但可更清晰 | 程式碼雜亂或難以理解 | | **註解** | 詳盡說明邏輯與決策 | 具基本註解 | 註解極少或沒有 | | **迴圈使用** | 適當展現不同迴圈類型的理解 | 正確使用迴圈但種類有限 | 迴圈使用錯誤或效率低 | | **測試** | 有多種情境完整測試的證據 | 展示基本測試 | 幾乎沒有測試證據 | ## 反思問題 完成練習後請思考: 1. 哪種類型的迴圈使用起來最自然?為什麼? 2. 在操作陣列時遇到了哪些挑戰? 3. 這些技能如何應用於實際的網頁開發專案中? 4. 若要優化程式效能,您會如何做出不同的設計? --- **免責聲明**: 本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言文件應視為權威版本。對於重要資訊,建議使用專業人工翻譯。我們不對因使用本翻譯所產生的任何誤解或誤釋承擔責任。