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

@@ -116,9 +116,16 @@ export class QuizController {
userAnsList = answer.userAnswer;
} else if (typeof answer.userAnswer === 'string') {
try {
userAnsList = JSON.parse(answer.userAnswer);
const parsed = JSON.parse(answer.userAnswer);
if (Array.isArray(parsed)) {
userAnsList = parsed;
} else {
// 尝试按逗号分割(处理如"同创造,共分享,齐飞扬"格式)
userAnsList = answer.userAnswer.split(',').map(item => item.trim());
}
} catch (e) {
userAnsList = [answer.userAnswer];
// JSON解析失败尝试按逗号分割
userAnsList = answer.userAnswer.split(',').map(item => item.trim());
}
}
@@ -128,10 +135,15 @@ export class QuizController {
} else if (typeof question.answer === 'string') {
try {
const parsed = JSON.parse(question.answer);
if (Array.isArray(parsed)) correctAnsList = parsed;
else correctAnsList = [question.answer];
if (Array.isArray(parsed)) {
correctAnsList = parsed;
} else {
// 尝试按逗号分割(处理如"同创造,共分享,齐飞扬"格式)
correctAnsList = question.answer.split(',').map(item => item.trim());
}
} catch {
correctAnsList = [question.answer];
// JSON解析失败尝试按逗号分割
correctAnsList = question.answer.split(',').map(item => item.trim());
}
}