fix(答案处理): 改进多答案字符串的分割逻辑

处理类似"同创造,共分享,齐飞扬"格式的答案字符串,统一使用逗号分割并去除空格
This commit is contained in:
2026-01-23 18:14:29 +08:00
parent eec3ea2238
commit abfe6e95f9
9 changed files with 743 additions and 695 deletions

View File

@@ -379,8 +379,28 @@ const QuizPage = () => {
if (!userAnswer) return false;
if (question.type === 'multiple') {
const correctAnswers = Array.isArray(question.answer) ? question.answer : [question.answer];
const userAnswers = Array.isArray(userAnswer) ? userAnswer : [userAnswer];
// 处理正确答案
let correctAnswers: string[] = [];
if (Array.isArray(question.answer)) {
correctAnswers = question.answer;
} else if (typeof question.answer === 'string') {
// 尝试按逗号分割(处理如"同创造,共分享,齐飞扬"格式)
correctAnswers = question.answer.split(',').map(item => item.trim());
} else {
correctAnswers = [String(question.answer)];
}
// 处理用户答案
let userAnswers: string[] = [];
if (Array.isArray(userAnswer)) {
userAnswers = userAnswer;
} else if (typeof userAnswer === 'string') {
// 尝试按逗号分割(处理如"同创造,共分享,齐飞扬"格式)
userAnswers = userAnswer.split(',').map(item => item.trim());
} else {
userAnswers = [String(userAnswer)];
}
return correctAnswers.length === userAnswers.length &&
correctAnswers.every(answer => userAnswers.includes(answer));
} else {