Files
2026-03-23 14:56:04 +08:00

75 lines
2.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const reviewer = {
name: "林晨",
stage: "final-review",
showTitle() {
console.log(`学习营总复盘器`);
// 输出总复盘标题
},
};
const lessons = [
{ title: "变量", score: 80, finished: true },
{ title: "闭包", score: 92, finished: true },
{ title: "this", score: 87, finished: true },
{ title: "补漏练习", score: null, finished: false },
{ title: "综合回顾", score: 95, finished: true },
];
let mentorNote;//undefined
const reviewComment = null;//null
function getStageText(stage) {
// 用 switch 返回阶段说明
switch (stage) {
case 'final-review':
console.log('已学习');
break
case 'ing-review':
console.log('学习中');
break
case 'start-review':
console.log('未学习');
break
default:
console.log('状态未知');
break
}
}
reviewer.showTitle()
console.log(mentorNote, reviewComment);
const lessons1 = []
for (let i = 0; i < lessons.length; i++) {
if (lessons[i].score != null) {
lessons1.push(lessons[i])
}
}
const sum = lessons.reduce((acc, item) => {
return acc + item.score
}, 0)
console.log("总分:" + sum);
console.log(`平均分:${sum / lessons.length}`);
const reviewerAlias = reviewer
reviewerAlias.stage = 'ing-review'
console.log(reviewer.stage, reviewerAlias.stage);
// 任务:
// 1. 调用 reviewer.showTitle()
// 2. 输出 mentorNote 和 reviewComment 的区别
// 3. 用 for + break 提取 lessons 中 score 有效的项目
// 4. 用高阶函数统计课程标题、完成状态和平均分
// 5. 创建 reviewerAlias 指向 reviewer修改 stage观察原对象是否变化
// 6. 输出最终结果
/* 一个带方法的 `reviewer` 对象
- 一个 `lessons` 数组
- 一个用 `switch` 输出阶段说明的函数
- 一个用 `for + break` 清洗有效数据的过程
- 至少两个数组高阶函数
- 对 `undefined` 和 `null` 的判断
- 一段对象引用变化的观察代码
- 最终输出标题、有效课程、平均分、完成状态*/