# 数组与循环作业 ## 说明 完成以下练习以练习数组和循环的使用。每个练习都建立在课程的概念基础上,并鼓励你应用不同的循环类型和数组方法。 ### 练习 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)进行翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。如涉及重要信息,建议采用专业人工翻译。因使用本翻译而引起的任何误解或误释,我们不承担任何责任。