编写checkForPlagiarism函数检测学生问答题作答是否包含指定文本
问题分析
- 版本1独有问题:你已将
answers[i]单条答题记录赋值给currentAnswers变量,该变量是对象类型不是数组,后续代码currentAnswers[i]属于非法取值,会直接抛出属性不存在的报错。 - 两个版本共有问题:你使用全等运算符
===判断文本片段和完整回答完全相等,不符合需求中「回答包含待检测片段即匹配成功」的要求,需使用题目提示的String.includes()方法实现包含判断。
修正后可运行代码
function checkForPlagiarism(answers, snippet){ for (let i = 0; i < answers.length; i++){ const currentAnswer = answers[i]; if(currentAnswer.isEssayQuestion){ if(currentAnswer.response.includes(snippet)){ return true; } } } return false; }
逻辑说明
- 遍历答题数组的每一条记录,仅当记录的
isEssayQuestion为true时才做后续校验 - 调用字符串内置的
includes()方法判断当前回答内容是否包含待检测文本片段,只要有一条记录匹配成功就直接返回true - 遍历完所有记录没有匹配到符合条件的内容,最终返回false
内容的提问来源于stack exchange,提问作者user16863092
相关产品推荐
相关产品推荐

