拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Web-Dev-For-Beginners 丹麦语《Arrays og Løkker》练习详解:四道数组与循环实战题的完整解法

Web-Dev-For-Beginners 丹麦语《Arrays og Løkker》练习详解四道数组与循环实战题的完整解法【免费下载链接】Web-Dev-For-Beginners24 Lessons, 12 Weeks, Get Started as a Web Developer项目地址: https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners本篇指南围绕 Web-Dev-For-Beginners 课程丹麦语da版本中“JavaScript 基础”单元的第四课练习文档展开逐题拆解“数字模式生成、数组分析、字符串数组处理、数据过滤”四道练习的原始要求、预期输出与参考实现。读完后你将能够独立用for循环、for...of、forEach()与对象数组处理完成数据加工任务并理解该练习在浏览器控制台中的测试方法与评分标准。练习文档在课程中的位置该练习是 丹麦语练习文档标题为Arrays og Løkker Opgave的核心内容它与同目录的 丹麦语课程讲义 配套——讲义末尾以链接[Loop an Array](https://link.gitcode.com/i/241fe73d0eb91bc119a2d7afd1ea535f)指向本文档原文档内写作assignment.md此处已转换为仓库根目录相对路径。对应的英文原版练习为 2-js-basics/4-arrays-loops/assignment.md英文讲义为 2-js-basics/4-arrays-loops/README.md可对照查阅。讲义丹麦语讲义 及英文原版在前序章节已讲解了三类关键循环语法练习正是建立在其上for循环三段式结构——初始化如let i 0、条件如i 10、自增如i适合迭代次数已知的场景参见 讲义循环结构表for...ofES6 语法直接拿到元素本身免去手动管理下标forEach()数组方法风格回调同时接收“元素值”与“下标”两个参数但无法提前终止参见 讲义 forEach 示例。讲义还给出了一段“单次循环同时求和、求最大最小值”的成绩单处理范例studentGrades [85, 92, 78, 96, 88, 73, 89]它是练习 2 与练习 4 的直接原型见 讲义数据处理示例。练习 1数字模式生成器Tal Mønster Generator丹麦语原文要求assignment.md 第 7–20 行编写一个程序列出 1–20 之间的每第 3 个数字并输出到控制台。原文要求Krav使用带自定义自增量的for循环for-løkke med en brugerdefineret inkrement以用户友好的格式展示数字添加解释逻辑的描述性注释。预期输出Forventet Output3, 6, 9, 12, 15, 18原文还附有一条提示Tip修改for循环中的迭代表达式iterationsudtryk即可跳过数字。参考实现如下注意自增写为i 3// 练习 1输出 1-20 之间每第 3 个数字 // 初始化 i 3第一个 3 的倍数条件 i 20每轮 i 3 跳过中间的数字 for (let i 3; i 20; i 3) { console.log(i); // 依次输出: 3, 6, 9, 12, 15, 18 }如果想得到与预期输出完全一致的“逗号分隔”单行形式可以借助数组与join()拼接const multiples []; for (let i 3; i 20; i 3) { multiples.push(i); // 利用 push 收集结果 } console.log(multiples.join(, )); // 3, 6, 9, 12, 15, 18这里length属性、push()方法均来自讲义“Array Length and Common Methods”一节讲义中iceCreamFlavors.push(Mint Chip)的示例展示了length会随数组变化自动更新。练习 2数组分析Array Analyse丹麦语原文要求assignment.md 第 22–32 行创建名为numbers的数组至少包含 8 个值编写函数findMaximum()返回最大值编写函数findMinimum()返回最小值编写函数calculateSum()返回所有数字之和测试每个函数并展示结果。加分挑战Bonusudfordring编写函数找出数组中第二大的数字。参考实现以传统for循环为核心逻辑与讲义的studentGrades范例思路一致// 练习 2至少 8 个数值的数组 const numbers [23, 5, 41, 17, 8, 62, 12, 35]; // 返回数组中的最大值 function findMaximum() { let max numbers[0]; // 以第一个元素为初始基准避免用 0 作基准 for (let i 1; i numbers.length; i) { if (numbers[i] max) { max numbers[i]; } } return max; // 62 } // 返回数组中的最小值 function findMinimum() { let min numbers[0]; for (let i 1; i numbers.length; i) { if (numbers[i] min) { min numbers[i]; } } return min; // 5 } // 返回所有数值的总和 function calculateSum() { let sum 0; // 累加器初始化为 0 for (let i 0; i numbers.length; i) { sum numbers[i]; } return sum; // 203 } // 逐个测试函数并展示结果 console.log(Maximum:, findMaximum()); // 62 console.log(Minimum:, findMinimum()); // 5 console.log(Sum:, calculateSum()); // 203加分挑战参考解法先求最大值再在“严格小于最大值”的元素中求最大以正确处理最大值重复出现的情况// 加分挑战第二大的数 function findSecondHighest() { const highest findMaximum(); let second Number.NEGATIVE_INFINITY; for (const n of numbers) { // 此处用 for...of 直接遍历元素 if (n highest n second) { second n; } } return second; // 41 } console.log(Second highest:, findSecondHighest()); // 41练习 3字符串数组处理Bearbejdning af String Arrays丹麦语原文要求assignment.md 第 34–57 行创建一个包含至少 5 个字符串值的数组可以是喜欢的电影、书或歌曲用传统for循环展示带编号的元素1. Elementnavn形式用for...of循环将元素以大写形式展示用forEach()方法统计并展示总字符数。原文示例输出Eksempel Output原样保留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参考实现以 5 部电影为例三种遍历方式各用一次正好覆盖练习要求// 练习 3字符串数组 三种遍历方式 const movies [The Matrix, Inception, Interstellar, Exodus, Dune]; // 1) 传统 for 循环展示带编号的元素 console.log(Traditional for loop:); for (let i 0; i movies.length; i) { console.log(${i 1}. ${movies[i]}); // 下标从 0 开始展示时 1 } // 2) for...of 循环大写字母展示 console.log(For...of loop (uppercase):); for (const movie of movies) { console.log(movie.toUpperCase()); // toUpperCase 将标题转为大写 } // 3) forEach 方法累计所有标题的总字符数 console.log(Character count:); let totalCharacters 0; // forEach 内不能 break故用累加变量统计 movies.forEach((movie) { totalCharacters movie.length; // 字符串的 length 属性给出字符数 }); console.log(Total characters across all titles: ${totalCharacters});需要说明的是示例输出中的42只是演示值实际结果由你自己数组中各标题的字符数之和决定例如上述 5 部影片合计 58 个字符。这与讲义中“forEach 提供元素值与下标两个参数、返回undefined”的说明一致——统计必须借助外部累加变量完成而不能依赖forEach的返回值。练习 4数据过滤Datafiltrering进阶丹麦语原文要求assignment.md 第 59–75 行创建至少 5 个学生对象组成的数组每个对象含属性name、age、grade用循环找出 18 岁及以上含 18 岁的学生计算全体学生的平均成绩创建一个新数组只包含成绩高于 85 的学生。原文示例结构Eksempel Struktur原样保留const students [ { name: Alice, age: 17, grade: 92 }, { name: Bob, age: 18, grade: 84 }, // Add more students... ];参考实现在示例结构基础上补齐 5 个学生并依次完成三项任务// 练习 4对象数组处理 const students [ { name: Alice, age: 17, grade: 92 }, { name: Bob, age: 18, grade: 84 }, { name: Cecilie, age: 19, grade: 88 }, { name: David, age: 16, grade: 79 }, { name: Emma, age: 20, grade: 91 } ]; // 1) 找出 18 岁及以上的学生循环 条件判断 push 收集 const adults []; for (let i 0; i students.length; i) { if (students[i].age 18) { adults.push(students[i]); } } console.log(18 students:, adults.map((s) s.name)); // Bob, Cecilie, Emma // 2) 计算平均成绩 let gradeTotal 0; for (const student of students) { gradeTotal student.grade; } const averageGrade gradeTotal / students.length; // 86.8 console.log(Average grade:, averageGrade); // 3) 新数组只含成绩高于 85 的学生 const topStudents []; students.forEach((student) { if (student.grade 85) { topStudents.push(student); } }); console.log(Grades above 85:, topStudents.map((s) ${s.name} (${s.grade}))); // Alice (92), Cecilie (88), Emma (91)边界条件提醒age 18与grade 85的取舍不同——前者含 18 岁后者不含 85 分这是原文 “18 år eller ældre”18 岁或更年长与 “karakterer over 85”高于 85 分两处措辞的直接翻译结果实现时应严格区分与。测试你的代码浏览器控制台验证方法原文档“Testning af Din Kode”一节给出四条测试步骤assignment.md 第 77–83 行完整保留在浏览器控制台browsers konsol中运行每一道练习核对输出是否与预期结果一致用不同的数据集重复测试检查代码能否处理边缘情况kanttilfælde——空数组、单元素数组。针对第 4 条可对照本文各题的具体测试点练习边缘情况预期行为练习 2numbers []空数组findMaximum()/findMinimum()返回numbers[0]即undefined可在函数开头加if (numbers.length 0) return null;做保护练习 2只有 1 个元素最大、最小、总和应都指向该元素第二大的加分函数应无结果练习 3空字符串数组编号与大写循环不执行totalCharacters应为 0 而不是报错练习 4无人满 18 岁 / 无人高于 85 分adults、topStudents为空数组[]注意空数组时平均成绩会除以 0 得NaN需先判空提交要求与评分标准提交指南Indsendelsesretningslinjer原文三条要求完整保留每道练习都附带充分注释的 JavaScript 代码Velkommenteret JavaScript-kode展示程序运行效果的截图或文本输出Skærmbilleder eller tekstoutput简要说明每道题选择了哪种循环类型及原因Hvilken type løkke du valgte til hver opgave og hvorfor。评分量表Bedømmelseskriterier原文档为三档计分3 / 2 / 1 分完整继承如下维度优秀3 point合格2 point待改进1 point功能性Funktionalitet全部练习正确完成并完成加分挑战所有必做练习正确运行部分练习不完整或含错误代码质量Kodekvalitet代码干净、组织良好变量命名有描述性代码能运行但可以更整洁代码杂乱、难以理解注释Kommentarer注释详尽解释逻辑与决策有基础注释几乎没有注释循环使用Brug af løkker恰当地展示了对不同循环类型的理解循环使用正确但种类有限循环使用错误或效率低测试Testning有多场景的充分测试证据展示了基础测试几乎没有测试证据从量表可以读出该练习的考查重心不仅是“跑通”而是要求在同一份作业中展示for、for...of、forEach的合理分工第 4 维度并留下可验证的测试记录第 5 维度——这也是讲义“Loop Selection Guide”象限图所传达的选择思路计数与下标操作用for简单逐元素遍历用for...of函数式风格的副作用操作用forEach。反思问题Refleksionsspørgsmål完成练习后原文档建议思考四个问题完整保留可将其作为自我验收清单哪种循环类型用起来最自然为什么在处理数组时你遇到了哪些困难这些技能如何应用到真实的 Web 开发项目中如果要为性能优化代码你会改变什么做法相关路径丹麦语练习文档本文主体translations/da/2-js-basics/4-arrays-loops/assignment.md丹麦语课程讲义含数组、循环语法讲解translations/da/2-js-basics/4-arrays-loops/README.md英文原版练习2-js-basics/4-arrays-loops/assignment.md英文课程讲义循环结构与成绩数据处理范例2-js-basics/4-arrays-loops/README.mdJS 基础单元总览2-js-basics/README.md【免费下载链接】Web-Dev-For-Beginners24 Lessons, 12 Weeks, Get Started as a Web Developer项目地址: https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门